2016-11-10 19 views
3

私は以下のコードをJavaでコンパイルすることができますが、何が原因であるか理解できませんでしたか?あなたのmainこのコードはなぜJavaでコンパイルされますか?

public class test { 


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

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

このJavaコードは何も問題はありません。ここではabcがラベルとして使用されています。 – suren

答えて

4

行がlabelled statementです。

これらのラベルはあまり使用されていませんが、breakおよびcontinueステートメントで使用できます。

+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

関連する問題