本帖最后由 hacket 于 2013-4-13 01:48 编辑
- public class Demo
- {
- public static void main(String args[])
- {
- int a=1 ;
- int b=0 ;
- int c=0 ;
- int temp;
- int count = 0;
- for(;a<10;a++)
- {
- System.out.println("a : "+a);
- for(;b<10;b++)
- {
- System.out.println("b : "+b);
- for(;c<10;c++)
- {
- count++;//计数
- System.out.println("c : "+c);
- temp=a*a*a+b*b*b+c*c*c ;
- if(temp==100*a+10*b+c)
- {
- System.out.println(temp);
- }
- }
- }
- }
- System.out.println("count : "+count);
- }
- }
复制代码 在第一个代码中,添加相应的输出语句,加个计数的count,第二个代码中也在相应的位置添加一模一样的,运行一下你就知道了,第一个代码中,count只有10,而第二个有900
,这个为什么呢?我的理解是这样的,定义在for里面的值,一出for就释放了值,而定义在外面的变量,在for结束后,内存还没有释放掉,也就是还有值,第一份代码,当c所在的for
运行完后,c为9了,b运行完后也为9,这时a++,a为2了,由于此时变量是定义在for外面,值没有释放,b还为9,所以下面的for循环就不进行了,然后a继续自增,直到程序结束,
这就是我所理解的,看对你有用吗?- a : 1
- b : 0
- c : 0
- c : 1
- c : 2
- c : 3
- c : 4
- c : 5
- c : 6
- c : 7
- c : 8
- c : 9
- b : 1
- b : 2
- b : 3
- b : 4
- b : 5
- b : 6
- b : 7
- b : 8
- b : 9
- a : 2
- a : 3
- a : 4
- a : 5
- a : 6
- a : 7
- a : 8
- a : 9
- count : 10
复制代码 |