Java 这个错误意味着break语句中缺少标签z是什么?

Java 这个错误意味着break语句中缺少标签z是什么?,java,Java,您好,在下面的代码中,我试图使用break和label来跳出for循环,但是我得到了以下错误。缺少标签Z。请帮助我下面给出了代码。请说明发生此错误的原因 public class Breaker { static String o = ""; public static void main(String[] args) { z: o = o + 2; for(int x = 3; x < 8; x++) {

您好,在下面的代码中,我试图使用break和label来跳出for循环,但是我得到了以下错误。缺少标签Z。请帮助我下面给出了代码。请说明发生此错误的原因

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

为了跳出循环,必须标记循环语句,而不是其他语句。不过,break-someLabel仅适用于嵌套循环。否则,您可以使用纯中断。

为了中断循环,您必须标记循环语句,而不是其他语句。不过,break-someLabel仅适用于嵌套循环。否则,您可以使用纯中断

标签OUTER_LOOP必须是封闭循环的标签。通常,这不是最里面的封闭循环,因为我们可以使用纯break语句,而不是带标签的break语句。 标签必须位于break语句的封闭循环之前

除了sysntax errorPlace标签,如果您从上面的总结中理解,在您的情况下,您只是打破了标签

标签OUTER_LOOP必须是封闭循环的标签。通常,这不是最里面的封闭循环,因为我们可以使用纯break语句,而不是带标签的break语句。 标签必须位于break语句的封闭循环之前


除了标签的sysntax errorPlace之外,如果您从上面的总结中了解到,在您的情况下,您只需中断

就得到了错误,因为在代码标签z:中没有包含任何循环:

尝试下面的代码:我刚刚在标签z之后添加了一对大括号:您不会得到任何编译错误,代码将运行

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

出现错误是因为代码标签z:中没有包含任何循环:

尝试下面的代码:我刚刚在标签z之后添加了一对大括号:您不会得到任何编译错误,代码将运行

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

阅读问题。阅读问题。如何标记循环语句。将z:放在for前面。再次查看代码,您可能试图执行Java中不允许的操作,从循环中跳转到其他语句。谢谢peter。但是我仍然想知道为什么java不允许这样做,因为我没有跳转到任何其他语句,我只是从for循环中跳出来。你可以这样想:break someLabel跳出循环,跳转到标记语句之后的位置。然而,在你的例子中,因为你已经标记了o=o+2;这意味着在循环之前跳转并再次进入循环,这是不允许的。您应该只标记循环语句,在这种情况下就可以了。还要确保您理解break和continue之间的区别。如何标记循环语句。将z:放在for之前。再次查看代码,您可能试图执行Java中不允许的操作,从循环中跳转到其他语句。谢谢peter。但是我仍然想知道为什么java不允许这样做,因为我没有跳转到任何其他语句,我只是从for循环中跳出来。你可以这样想:break someLabel跳出循环,跳转到标记语句之后的位置。然而,在你的例子中,因为你已经标记了o=o+2;这意味着在循环之前跳转并再次进入循环,这是不允许的。您应该只标记循环语句,在这种情况下就可以了。还要确保你理解中断和继续之间的区别。这是一个非常独特的想法。我在哪里可以找到oracle关于详细使用break Station或任何其他可信来源的官方定义。这是一个非常独特的想法。在哪里可以找到详细使用break Station或任何其他受信任源的oracle官方定义。
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.println(o);
     }
    }
 }