我测试了以下代码,可能会打印0和2,但它打印1和1为什么?
public class break_command {
public static void main(String[] args) {
for (int i=0;i<10;i++){
for (int j=1;j<10;i++){
if ((i+j) %2==0){
System.out.println("i "+ i +" j " +j);
break;
}
}
break;
}
}
}
result//
i 1 j 1
BUILD SUCCESSFUL (total time: 0 seconds)
答案 0 :(得分:4)
是行:
for (int j=1;j<10;i++){
假设是j ++而不是i ++?
否则它意味着第一次迭代:
if ((i+j) %2==0){
将是真的。
答案 1 :(得分:2)
你在第二个循环中迭代我,而不是j。所以最初,在第一个循环中,我的值为0.然后当你进入第二个循环时,它增加到1.此时我的值为1,j的值为1;它们的总和是均匀的,所以它打印出来并突破内部循环,突破外部循环,你就完成了。