问题如下:
下面代码运行后的打印结果是什么?
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 ,但是实际上什么结果都没有,求解?
下面代码运行后的打印结果是什么?
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 ,但是实际上什么结果都没有,求解?
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);
}
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);
}
}
for(int j=0;j<0;j++)这个循环根本就不会进去,而continue outer;
不断跳出循环
j < 正整数 才是1,请看上面的注释。