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

Строка в вашем main является 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

Смежные вопросы