问题如下:
下面代码运行后的打印结果是什么?
public class BreakContinueTest{
public static void main(String[] args){
int i=0;
outer: while(true){
i++;
inter: for(int j=0;j<0;j++){
i+=j;
if(j==3)
continue inter;
break outer;
}
continue outer;
}
System.out.println("i="+i);
}
}
--------------------------------------------------
答案是:A.1
--------------------------------------------------
编译成功,运行时却无反应,预测结果应该是输出  i=1   ,但是实际上什么结果都没有,求解?

解决方案 »

  1.   


    public static void main(String[] args) {
    int i = 0;
    outer: while (true) {
    i++;
    inter: for (int j = 0; j < 0; j++) {  //j<0 永远不会进入此逻辑,直接到break outer;导致无限循环....
    i += j;
    if (j == 3)
    continue inter;
    break outer;
    }
    continue outer;
    }
    System.out.println("i=" + i);
    }
      

  2.   


    public class BreakContinueTest {
    public static void main(String[] args) {
    int i = 0;
    outer: while (true) {
    i++;
    inter: for (int j = 0; j < 10; j++) {
                                    //改为j<10,第一次进来,j=0
    i += j;  //由于j = 0,i还是为1
    if (j == 3)  //不会进入此逻辑
    continue inter;
    break outer; //跳出循环
    }
    continue outer;
    }
    System.out.println("i=" + i);
    }
    }
      

  3.   

    非常不解你这个1怎么得出来的。。
    for(int j=0;j<0;j++)这个循环根本就不会进去,而continue outer;
    不断跳出循环
      

  4.   

    j<0, 程序是无限循环,....continue outer;之后立马又进入while循环了....
    j < 正整数        才是1,请看上面的注释。