使用break z时标签z缺少编译错误

时间:2015-03-24 15:59:25

标签: java

package brea;

public class BreakExample {

    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.println(o);  
    }
}

在上面的代码中,我得到一个编译错误,因为缺少标签z。是什么原因 ?什么可以解决?

1 个答案:

答案 0 :(得分:3)

A label is followed by a statement。在您的情况下,该语句只是

o = o + 2;

因此z仅适用于该声明。

  

标签声明的标签范围是立即的   包含声明。

如果您希望zfor语句的范围内,请添加一个块语句

z: {
    o = o + 2;
    for (int x = 3; x < 8; x++) {
        if (x == 4)
            break;
        if (x == 6)
            break z;
        o = o + x;
    }
}