Java 这个错误意味着break语句中缺少标签z是什么?
您好,在下面的代码中,我试图使用break和label来跳出for循环,但是我得到了以下错误。缺少标签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++) {
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);
}
}
}