Помеченные операторы Break и Continue в Java

В 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 и Continue в Java0

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

Помеченные операторы Break и Continue в Java1

Таким же образом мы можем использовать помеченные операторы 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 немедленно переходит к следующей итерации соответствующего цикла(если таковая имеется).
Прокрутить вверх