scjp考试准备 - 1 - 循环控制

时间:2023-03-08 19:18:54

判断如下代码最后的执行结果。

public class Breaker{
static String o = "";
public static void main(String[] args){
z:
o = o+2;
for(int x=3; x<8; x++){
if(x==4) break;
if(x==6) break z;
o = o+x;
}
System.out.print(o);
}
}

这道题考察的重点是Java的循环控制。主要考察break语句及循环标签。

break语句默认可以结束其所在的循环。在嵌套循环的情况下,若要在内层循环中结束外层循环可以使用标签。java中的标签就是一个紧跟着英文冒号“:”的标识符。java中的循环标签只有放在循环语句前才有作用。

这道题中的错误在于循环标签没有放置在循环语句前。因为是语法的错误,所以在编译时就无法通过。

附上编译执行结果:

scjp考试准备 - 1 - 循环控制

这里还有另一个不当处,先把问题纠正过来,将“z:”标签移到循环语句前。但因为是单层循环,break语句默认结束当前循环,所以在这里设置标签就没有意义了。不过在语法和执行上都没有错误。