2013-06-27 3 views
6

Кто-нибудь знает, что делают group_skip?Что делает оператор break в java?

Возможно, это базовое программирование, но я программировал Java в течение нескольких лет и только что нашел его сегодня.

group_skip: do { 
    event = stepToNextEvent(FormController.STEP_OVER_GROUP); 
    switch (event) { 
     case FormEntryController.EVENT_QUESTION: 
     case FormEntryController.EVENT_END_OF_FORM: 
      break group_skip; 
    } 
} while (event != FormEntryController.EVENT_END_OF_FORM); 

Спасибо!

+5

Не размещайте изображения текста, вместо этого скопируйте и вставьте фактический текст прямо в сообщение. Изображения текста нелегко разбираются, доступны для поиска или доступны. –

+1

Отредактировано! Извините за это: D – Rendy

+1

Это ярлык, который можно использовать, чтобы вырваться из заявления – Longball27

ответ

15

Это labelled loop, когда выполняется break group_skip; заявление, оно выскочит из дел в то время как петля, которая помечена как group_skip

boolean isTrue = true; 
    outer: for (int i = 0; i < 5; i++) { 
     while (isTrue) { 
      System.out.println("Hello"); 
      break outer; 
     } // end of inner while 
     System.out.println("Outer loop"); // does not print 
    } // end of outer loop 
    System.out.println("Good Bye"); 

Эти выходы

Hello 
Good Bye 

Здесь вы можете понять концепцию.

  • Там будет меченый for петля называется outer и есть внутренняя while петля
  • Когда внутренний цикл выполняется, он встречает break outer; заявление
  • outer for loop имеет System.out.println"Outer loop" заявление, но это не получить печатные ,
  • Это происходит потому, что break outer СЧПУ выскочить меченого for петли непосредственно

Сейчас этот пример для continue заявления

outer: for (int i = 0; i < 5; i++) { 
     for (int j = 0; j < 5; j++) { 
      System.out.println("Hello"); 
      continue outer; 
     } // end of inner loop 
     System.out.println("outer"); // this won't print 
    } // end of outer loop 
    System.out.println("Good bye"); 

Печатается

Hello 
Hello 
Hello 
Hello 
Hello 
Good bye 
  • Eсть обозначен for здесь и внутренняя петля for
  • Внутренняя for петля печатает Hello и продолжает цикл outer.
  • Из-за этого заявления ниже внутреннего цикла for пропускаются, и цикл outer продолжает выполняться.
  • В конце outer для цикла, Good Bye печатается

Надеются, что это делает все ясно.

+0

Спасибо Prasad за очень ясный пример! Btw, у вас нет 'System.out.println (« Good Bye »);'; D – Rendy

+0

Сделана ошибка, whily copy, вставляющая его :) .. спасибо, что указали это Rendy –

+0

Счастливый обучающийся чувак :) –

0

group_skip - это ярлык, используемый для таких вещей, как break. (Также goto и прыгать на других языках)

В java специально он будет использоваться для разрыва с кодовым блоком, идентифицированным меткой, и ведет себя как оператор break в цикле while, за исключением нарушения от помеченного кодового блока.

Here еще некоторое обсуждение на тему

8

group_skip - это ярлык.Ярлыки позволяют вам сломать или продолжить определенные циклы, когда вы их вложили.

Here's what Oracle has to say on the subject.

+0

Спасибо Крису! Документы очень полезны! – Rendy

5

когда-либо мы используем простое заявление перерыва, то мы можем только передать управление от внутренней большей петли к самому внешнему (если мы имеем вложенность циклов). для Примеру

for(int i=0; i < 10; i++){ 
    if(i==5){ 
     break; 
    } 
} 
statement x; 

просто передать управление заявление х. Но если вы используете его внутри вложенных циклов, то он будет работать по-другому.

for(int i=0; i < 10; i++){ 
for(int j=0; j < 10; j++) 
    if(i==5){ 
     break; 
    } 
} 
statement y; 
} 
statement x; 

в этом случае он будет посылать управление заявление у. Если вы хотите отправить элемент управления из самого внутреннего цикла в любой из внешних циклов или вне цикла, тогда вам нужны такие инструкции break с метками. Просто сделайте это с самого себя, и вы увидите интересный результат. :)

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