2016-11-10 52 views
3

我可以在Java下面看到代码编译,但无法理解可能是什么原因?为什么这个代码在java中编译?

public class test { 


    @SuppressWarnings("unused") 
    public static void main(String[] args) { 

     abc:System.out.println(9); 
    } 
} 
+0

有什么错Java代码。这里abc被用作标签。 – suren

回答

4

线在你mainlabelled statement

这些标签并没有太多用处,但它们可以与breakcontinue语句一起使用。

+0

我会补充说'他们可以使用'但他们不应该使用;} – AxelH

2

呃...因为这是一个有效的Java代码。

如果你问关于abc:System.out.println(9);abc只是一个标签语句的标签,在Java中是合法的,但是如果你必须使用它,这意味着你的代码出错了。

它们最常用于标记嵌套循环:

abc: for (int i = 0; i < 5; i++) { 
     for (int j = i; j < 10; j ++) { 
      if (j == 4) { 
       break abc; //breaks the outer loop. 
      } 
     } 
    } 
+0

现在我记得使用goto语句。但是因为它不再使用,所以就不在我的脑海里了。感谢答案的人。欣赏! – pd30