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); }
}  为什么会报错?

解决方案 »

  1.   

      还有一个问题:break z的时候,会跳回到z标记处,在跳回的时候下面那句o = o + x还执行不执行了?
      

  2.   

    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的功能!
      

  3.   

    java没有goto表达式,goto是个由于历史原因遗留的关键字。通过continue和标签可以变相实现gotogoto严重影响可读性。建议楼主修改一下代码吧。
      

  4.   

    break label;
    label应该是循环的标记
    意思就是中断标记的循环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);
    }
    }
    }当x == 6时,中断z指示的内层循环