关于循环和中断命令的问题

时间:2010-06-30 14:26:33

标签: java

我测试了以下代码,可能会打印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)

2 个答案:

答案 0 :(得分:4)

是行:

for (int j=1;j<10;i++){

假设是j ++而不是i ++?

否则它意味着第一次迭代:

if ((i+j) %2==0){

将是真的。

答案 1 :(得分:2)

你在第二个循环中迭代我,而不是j。所以最初,在第一个循环中,我的值为0.然后当你进入第二个循环时,它增加到1.此时我的值为1,j的值为1;它们的总和是均匀的,所以它打印出来并突破内部循环,突破外部循环,你就完成了。