import java.util.Scanner;
class testing
{
int i ; int j ;
Scanner sc = new Scanner(System.in) ;
void lolwa()
{
out:
for(i = 0 ; i <= 6 ; i++)
{
System.out.println(i);
}
System.out.println("Enter 1 to restart loop");
System.out.println("Enter 2 to continue till 10");
j = sc.nextInt();
if(j == 1)
{
continue out ;
}
if(j == 2)
{
for(i = 7 ; i <= 10 ; i++)
{
System.out.println(i);
}
}
}
}
我在BlueJ编译了它,它说:“未定义的标签输出”。我刚刚学会了使用continue语句,所以我无法弄清楚问题
答案 0 :(得分:5)
您的out
标签“注释”此for-loop:
out:
for(i = 0 ; i <= 6 ; i++)
{
System.out.println(i);
}
因此,为了继续使用标签out
,需要在中 for循环。在for循环结束之后使用它是没有意义的。这将编译,例如:
out:
for(int i = 0; i <= 6; i++)
{
System.out.println(i);
continue out;
}
在这种情况下,您不需要带标签的continue语句。没有含糊之处。只有一个循环可以“继续”出来。
Oracle tutorial很好地解释了。
值得一提的是,我甚至不记得上次我必须使用标记为“继续” - 也许永远不会。除非你几乎别无选择,否则我会避开它们。
答案 1 :(得分:1)
我认为你没有使用continue label
:它必须在循环中使用,并用于跳转到你的特定标签。 if
语句不一个循环。只需通过致电continue out
来替换您的lolwa()
,您就可以获得所需的行为:您将被发送到您的职能部门。