首页 > 代码库 > scjp考试准备 - 1

scjp考试准备 - 1

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

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中的循环标签只有放在循环语句前才有作用。

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

附上编译执行结果:

image

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