В Java есть три оператора перехода: break, continue, return. Операторы перехода передают управление другой части программы.
Оператор break
Оператор break завершает последовательность операторов в операторе switch, позволяет выйти из цикла и в качестве оператора безусловного перехода (goto).
Рассмотрим пример выхода из цикла. Используя оператор break, можно вызвать немедленное завершение цикла, пропуская условное выражение и другой код в теле цикла. Когда приложение встречает оператор break внутри цикла, оно прекращает выполнение цикла и передаёт управление оператору, следующему за циклом.
Получим следующий результат:
Вроде хотели, чтобы цикл for выполнялся от 0 до 100, а сами коварно вышли из него, когда значение переменной i стало равным 4.
Код можно переписать с использованием цикла while:
Результат будет такой же.
При использовании вложенных циклов оператор break осуществляет выход только из самого внутреннего цикла, не оказывая влияния на внешний цикл. Создадим пример с использованием вложенных циклов:
Получим следующий результат:
В примере оператор break прервал выполнение второго цикла, но первый цикл продолжал работать.
В цикле можно использовать несколько операторов break, но увлекаться не стоит. Лучше переделайте код.
break как замена goto
В Java нет оператора безусловного перехода goto. Если вы не знаете, что это такое, то можете смело пропустить данный абзац. У оператора break есть особая форма записи:
Обычно метка – это имя метки, идентифицирующей блок кода. Я ни разу не встречал в реальных примерах данный способ, поэтому не буду приводить пример использования, чтобы вас не запутать.
Оператор continue
Иногда требуется, чтобы повторение цикла начиналось с более раннего оператора его тела. В циклах while и do-while оператор continue вызывает передачу управления непосредственно управляющему условному выражению цикла. В цикле for управление передаётся вначале итерационной части цикла for, а потом условному выражению. При этом во всех циклах промежуточный код пропускается.
В следующем примере выводим два числа в каждой строке:
В этом коде оператор % служит для проверки чётности значения переменной i. Если значение чётное, выполнение цикла продолжится дальше, а если нечётное, то произойдёт переход на новую строку. В результате мы получим следующий текст:
Как и оператор break, оператор continue может содержать метку содержащего его цикла, который нужно продолжить. Создадим пример вывода треугольной таблицы умножения чисел от 0 до 9.
В этом примере оператор continue прерывает цикл подсчёта значений переменной j и продолжает его со следующей итерации цикла подсчёта переменной i. На экране увидим текст в таком виде:
Данный оператор в практике встречается достаточно редко. Но на всякий случай помните о нём. Иногда он может пригодиться.
Оператор return
Оператор return используют для выполнения явного выхода из метода. Оператор можно использовать в любом месте метода для возврата управления тому объекту, который вызвал данный метод. Таким образом, return прекращает выполнение метода, в котором он находится.
Вот смотрю пример кода и нашел тут вот такое
Так вот первый раз вижу вот такое условие
и потом это как то привязано к строке ниже
подскажите как это работает или где есть что почитать?
1 ответ 1
Это оператор break с меткой. В случае его срабатывания происходит переход к коду, который находится за блоком кода с заданной меткой.
Его удобно использовать для выхода из вложенных циклов. Оператор break без метки позволяет перейти только на один уровень вверх, а с помощью break label можно сразу выйти из цикла любой вложенности.
Здесь он используется для выхода из вложенного цикла (из 5-го уровня происходит переход сразу к циклу первого уровня).
Прочитать можно в любом пособии по Java.
Вывод на консоль:
PS. break label следует использовать только при крайней необходимости, так как он затрудняет восприятие кода.
Оператор языка Java break, может применяться в следующих случаях:
- Для завершения последовательности операторов в операторе switch , что было рассмотрено в Оператор switch.
- Его можно использовать для выхода из цикла.
- Можно применять в качестве "цивилизованной" формы оператора безусловного перехода goto .
Применение оператора break для выхода из цикла
Рассмотрим пример применения оператора break для выхода из цикла while . По условию цикла while , цикл должен выполниться 100 раз. Если в случае какой-то непредвиденной ситуации мы хотим выйти раньше, используется оператор break.
Следует отметить, что оператор break не предназначен в качестве обычного средства выхода из цикла. Для этого служит условное выражение в цикле. Этот оператор следует использовать для выхода из цикла только в особых случаях. Также оператор break следует использовать только внутри цикла.
Применение оператора break для выхода из внутреннего цикла
Если в программе применяется ряд вложенных циклов, то оператор break осуществляет выход только из самого внутреннего цикла. Например:
Результат выполнения программы:
В цикле можно использовать больше одного оператора break, но лучше этого не делать.
Оператор break с меткой
Рассмотрим применение оператора break с меткой. Этот вариант может использоваться в качестве цивилизованной формы оператора goto , которого нет в языке Java в отличие от некоторых других языков программирования.
Где метка – это имя метки, обозначающее блок кода. Им может быть как самостоятельный блок кода, так и целевой блок другого оператора. Чтобы пометить блок, достаточно поместить в его начале метку.
Применение break с меткой для выхода из вложенных циклов
В следующем коде три блока кода отмечены метками first , second , third . При достижении строки break second; мы выходим из блока second .
Результат выполнения кода:
Часто break c меткой используется для выхода из внутреннего цикла, как показано в этом примере: