В Java мы можем маркировать циклы и давать им имена. Эти именованные или маркированные циклы помогают в случае вложенных циклов, когда мы хотим прервать или продолжить определенный цикл из этих нескольких вложенных циклов.
Помеченные блоки в Java логически аналогичны операторам goto в C/C++.
1. Синтаксис
Метка — это любой допустимый идентификатор, за которым следует двоеточие. Например, в следующем коде мы создаем два помеченных оператора:
outer_loop:for(int i = 0; i < array.length; i++) {inner_loop:for(int j = 0; j < array.length; j++) {//...}//...}
В приведенном выше примере у нас есть два цикла, и мы обозначили их как external_loop и inner_loop. Это полезно, когда мы хотим завершить внешний цикл из условия, записанного во внутреннем цикле.
2. Разница между простым и маркированным разрывом
Простой оператор break в Java завершает только непосредственный цикл, в котором он указан. Таким образом, даже если мы прервемся из внутреннего цикла, он все равно продолжит выполнять текущую итерацию внешнего цикла.

Мы должны использовать помеченный оператор break для завершения определенного цикла, как, например, outer_loop в приведенном выше примере.

Таким же образом мы можем использовать помеченные операторы continue для перехода к следующей итерации любого конкретного цикла в иерархии вложенных циклов.
continue outer_loop;
3. Помеченное утверждение с другими условными утверждениями
Стоит отметить, что помеченные операторы break и continue могут использоваться с другими операторами управления потоком, такими как операторы if-else, while-loop и т. д.
Следующая программа использует помеченный оператор break с циклом while. Всякий раз, когда во время выполнения программы встречается помеченный оператор break, управление немедленно выходит из охватывающего помеченного блока.
hackit:while(Some condition){if( a specific condition )break hackit; //labelelse//normal business logic goes here..}
Аналогично мы можем использовать эти операторы и с классическими операторами if-else.
int i = 10;outer_if:if(i > 0) {inner_if:if( i> 5) {//...break outer_if;} else {//...}}
4. Заключение
В этом простом руководстве по Java мы обсудили следующие моменты:
- В Java нет общего оператора goto, как в некоторых других языках программирования.
- Простые break и continue изменяют нормальное управление потоком программы. Мы можем указать именованные метки. Метка должна быть допустимым идентификатором Java с двоеточием.
- Помеченные блоки можно использовать только с операторами break и continue.
- Помеченные операторы break и continue должны вызываться в пределах их области действия. Мы не можем ссылаться на них за пределами области действия помеченного блока.
- Оператор break немедленно переходит к концу(и за пределы) соответствующего составного оператора.
- Оператор continue немедленно переходит к следующей итерации соответствующего цикла(если таковая имеется).