日期:2014-05-20  浏览次数:20765 次

一个报错的小问题,高手帮忙!
Java code


public class Test {
    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:for (int x = 3; x < 8; x++) {
if (x == 4)
break;
if (x == 6)
break z;
o = o + x;
}
break是跳出循环!!只有一层循环break和break z是一样的!break z是跳出标记的那层循环!没有C++中goto的功能!
------解决方案--------------------
java没有goto表达式,goto是个由于历史原因遗留的关键字。通过continue和标签可以变相实现goto

goto严重影响可读性。建议楼主修改一下代码吧。
------解决方案--------------------
break label;
label应该是循环的标记
意思就是中断标记的循环
Java code

public class Test {
    static String o = "";

    public static void main(String[] args) {
         for (int i = 0; i < 7; i++) {
             z:for (int x = 3; x < 8; x++) {
                if (x == 6)
                    break z;
                o = o + x;
            }
            System.out.println(o);
        }
    }
}