JAVA for loop 问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:20:19
private void loopsEx01() {
int value = 0;
for( int i = 0; i<3; i++ ) {
value = value + i;
for( int j = 0; j<4; j++ ) {
value = value + j;
}
}
System.out.println(value);

能不能给我解释下, CODE怎么运行的, 两个FOR LOOP的,我不太懂
应该说是 for loop 里面的 for loop

外层循环3次
分别是value=i+value;
也就是说外层value值,不存在其他对value改变的情况下应该是是0,1,3;这样的变化。
但是由于内部嵌套一个循环,导致在每次大循环的过程中还存在小循环叠加问题value=value+j;
这样每次内层循环value数的变化为0,1,3,6;(假设value值为0)
也就是说内层将跟外层一样总共运行3次每次结果加6即6*3=18
外层运行3次3次结果为3,最后总结果就为21了。

如果调用函数loopsEx01,首先创建局部变量value并赋值为0,然后执行三次累加,value的值为3(0,1,2);再执行4次累加,value的值为9(0,1,2,4),函数结束。局部变量value失效。函数体外的System.out.println(value)输出的是在别处声明的变量value,非loopsEx01()内的value。