2016-11-10 114 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