int sum = 0;
for(int i = 0,j = 0;j <= 7;i++)
{
 sum = i*1+j*2+(7-i-j)*3;

 if(sum % 4 == 0)
 System.out.println("1的个数:"+i+"  "+"2的个数:"+j+"  "+"3的个数:"+(7-i-j));
 
 if(i == (7-j))
 {
 i = 0;
 j++;
 }
 
}能帮我看下这段代码为什么输出的i的值不是7以下的数 

解决方案 »

  1.   

    头晕    不知道是这个地方不?
    if(i == (7-j)) 

    i = 0; 
    j++; 
    } 执行完这个if之后 又执行for的第三个表达式i++  i 还是被加1了 是不是你把执行先后顺序搞错了?  一点拙见
      

  2.   

    我运行了你的代码,发现是个死循环。
    for(int i = 0,j = 0;j <= 7;i++) 
    这里的代码是错误的,应该改成
    for(int i = 0,j = 0;i <= 7;i++) 这样i的值就在正常范围了。
      

  3.   

    改成:
    int sum = 0; 
    for(int i = 0,j = 0;j <= 7;i++) 

    sum = i*1+j*2+(7-i-j)*3; if(sum % 4 == 0) 
    System.out.println("1的个数:"+i+"  "+"2的个数:"+j+"  "+"3的个数:"+(7-i-j)); if(i == (7-j)) 

    i = -1;   //这样i就从0开始下次循环了
    j++; 
    } }