我目前正在努力理解这个循环:
class Test{
public static void main(String args[]){
int i=0, j=0;
X1: for(i = 0; i < 3; i++){
X2: for(j = 3; j > 0; j--){
if(i < j) continue X1;
else break X2;
}
}
System.out.println(i+" "+j);
}
}
到目前为止,我知道变量的值将是:
0 3
1 3
2 3
最后将打印3 3.
第三次迭代后,条件X1将为假,从而导致循环语句中断。虽然我很清楚为什么 j 的值i等于 3,但我不明白为什么 j 的值也等于 3。最初 j 的值为0,当我们进入循环时是3,但在最后一次迭代中我们并没有真正进入循环X2,因为i<3评估为 false。所以问题是为什么编译器“保存”的值k?即使编译器保存了j上一次迭代的值也应该是2......
鸿蒙传说
撒科打诨
慕工程0101907
阿晨1998
守着一只汪
相关分类