日期:2014-05-20  浏览次数:20680 次

for循环
for (i=0; i<2; i++) 
  for(j=0; j<2; j++) 
  for(k=0; k<2; k++) 
  {
  System.out.print(i+" "+j+" "+k);
  System.out.println();
  }
是怎么运行的?有谁解释下.

------解决方案--------------------
i=0-->j=0-->循环最里面的for循环--->j++
--->j=1---->循环最里面的for循环---j++
--->j=2----->结束中间的一个循环--->i++
-->i=1->j=0---->重复步骤
------解决方案--------------------
探讨
你不是已经跟踪运行啦吗?就是先内循环,再外循环一层一层走.

------解决方案--------------------
从外面到里面,一层一层循环,
------解决方案--------------------
for (i=0; i <2; i++)
for(j=0; j <2; j++)
for(k=0; k <2; k++)
{
System.out.print(i+" "+j+" "+k);
System.out.println();


当i = 0 ,j = 0时,进行最内循环,k从0到1
然后i还是=0,j=1,到了从里面数第二层循环,然后k从0到1最内循环
然后....
------解决方案--------------------
内外一共3个循环,每个循环执行2次,所以2的3次方也就是8,将执行8次输出
输出结果:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1


具体步骤:
直观的看程序可能会看迷茫,将这段程序拆分,达到同等效果,则会很容易理解怎么运行的了
将源程序段多加几个括号,增加一些注释:
for (i=0; i <2; i++) 
{ for(j=0; j <2; j++)
{
for(k=0; k <2; k++) 

System.out.println("i=" + i +" j="+j+" k="+k); 

}
}
拆分:
for (i=0; i <2; ) 
{ for(j=0; j <2; )
{
for(k=0; k <2; ) 

System.out.println("i=" + i +" j="+j+" k="+k); 
k++

j++
}
i++ 
}

运行结果:
i=0 j=0 k=0
i=0 j=0 k=1
i=0 j=1 k=0
i=0 j=1 k=1
i=1 j=0 k=0
i=1 j=0 k=1
i=1 j=1 k=0
i=1 j=1 k=1

根据运行结果看程序,很容易理解

for (i=0; i <2; i++) {……}
步骤:
1、i=0,i被赋值为0
2、判断i是否小于2,i<2
3、i是小于2,则运行{……}
4、运行完后,执行i++
5、判断i是否小于2,i<2
6、i是小于2,则运行{……}
7、运行完后,执行i++
8、判断i是否小于2,i<2
9、i是等于2,不小于2,所以不执行{……}
10、程序继续向下执行
……

如果是循环内嵌套循环,按照上面的步骤,一个循环一个循环的走,就OK了
------解决方案--------------------
7楼真是用心良苦!
------解决方案--------------------
1.外循环开始
2.内循环开始
3.内循环结束
4.外循环结束
------解决方案--------------------
从外到里依次循环
 最里面那个一次性循环3次
总共就是2×2×2 = 8次
------解决方案--------------------
Java code

for (i=0; i <2; i++)
        for(j=0; j <2; j++)
            for(k=0; k <2; k++,  System.out.println("i = "+j+" j = "+" k ="+k))//自己调试一下就行了啊
              {
              System.out.print(i+"  "+j+"  "+k);
              System.out.println();
              }

------解决方案--------------------
从里面向外层循环 ,内层循环循环一次外层循环变量加一,以此类推