Оператор break
Оператор языка Java break, может применяться в следующих случаях:
- Для завершения последовательности операторов в операторе switch , что было рассмотрено в Оператор switch.
- Его можно использовать для выхода из цикла.
- Можно применять в качестве «цивилизованной» формы оператора безусловного перехода goto .
Применение оператора break для выхода из цикла
Рассмотрим пример применения оператора break для выхода из цикла while . По условию цикла while , цикл должен выполниться 100 раз. Если в случае какой-то непредвиденной ситуации мы хотим выйти раньше, используется оператор break.
public class BreakLoop1 < public static void main(String[] args) < int i = 0, n = 100; while (i < n) < if (i == 10) < break; >System.out.println("i: " + i++); > System.out.println("Цикл завершен."); > >
Следует отметить, что оператор break не предназначен в качестве обычного средства выхода из цикла. Для этого служит условное выражение в цикле. Этот оператор следует использовать для выхода из цикла только в особых случаях. Также оператор break следует использовать только внутри цикла.
Применение оператора break для выхода из внутреннего цикла
Если в программе применяется ряд вложенных циклов, то оператор break осуществляет выход только из самого внутреннего цикла. Например:
public class BreakLoop2 < public static void main(String[] args) < for (int i = 0; i < 3; i++) < System.out.print("Пpoxoд " + i + " : "); for (int j = 0; j < 100; j++) < if (j == 10) < break; >System.out.print(j + " "); > System.out.println(); > System.out.println("Циклы завершены"); > >
Результат выполнения программы:
Проход 0 : 0 1 2 3 4 5 6 7 8 9 Проход 1 : 0 1 2 3 4 5 6 7 8 9 Проход 2 : 0 1 2 3 4 5 6 7 8 9 Циклы завершены
В цикле можно использовать больше одного оператора break, но лучше этого не делать.
Оператор break с меткой
Рассмотрим применение оператора break с меткой. Этот вариант может использоваться в качестве цивилизованной формы оператора goto , которого нет в языке Java в отличие от некоторых других языков программирования.
Общая форма оператора break с меткой:
break метка;
Где метка — это имя метки, обозначающее блок кода. Им может быть как самостоятельный блок кода, так и целевой блок другого оператора. Чтобы пометить блок, достаточно поместить в его начале метку.
Метка – это любой допустимый в Java идентификатор с двоеточием.
Применение break с меткой для выхода из вложенных циклов
В следующем коде три блока кода отмечены метками first , second , third . При достижении строки break second; мы выходим из блока second .
public class BreakLoop3 < public static void main(String[] args) < boolean t = true; first: < second: < third: < System.out.println("Перед break."); if (t) < break second; >System.out.println("Этот код не будет выполнен."); > System.out.println("Этот код не будет выполнен."); > System.out.println("После второго блока."); > > >
Результат выполнения кода:
Перед break. После второго блока.
Часто break c меткой используется для выхода из внутреннего цикла, как показано в этом примере:
public class BreakLoop4 < public static void main(String[] args) < outer: for (int i = 0; i < 3; i++) < System.out.print("Пpoxoд " + i + " : "); for (int j = 0; j < 100; j++) < if (j == 10) < break outer; // выход из обоих циклов >System.out.print(j + " "); > System.out.println("Этa строка не будет выводиться"); > > >
Презентацию с видео можно скачать на Patreon .
Как завершить цикл в java
Для прерывания выполнения цикла в Java можно использовать оператор break . Как только оператор break будет выполнен в теле цикла, управление передается за пределы цикла.
Например, в цикле for можно использовать break следующим образом:
for (int i = 0; i 10; i++) if (i == 5) break; // прерываем цикл, когда i = 5 > System.out.println(i); >
В этом примере цикл будет выполняться, пока значение i меньше 10. Однако, когда i достигнет 5, оператор break будет выполнен и цикл прервется. В результате на экран будут выведены числа от 0 до 4.
Также можно использовать оператор break в цикле while и do-while
Оператор break в Java
Если Вы уже сталкивались с циклами, то Вы уже знаете, что все они, чаще всего, имеют одинаковые составляющие:
- переменную итерации
- условие
- шаг итерации
For, while, do. while выполняют одинаковые функции. Можно сказать, что циклы достаточно простые и предсказуемые — они просто изменяют заданную переменную n-ное количество раз.
Но существуют ключевые слова, которые дают нам больше власти над циклом. Они позволяют нам:
- завершить цикл раньше времени (оператор break)
- проигнорировать часть кода (оператор continue)
В некоторых ситуациях они позволят Вам найти более практичное и элегантное решение поставленных задач. Давайте рассмотрим их подробнее.
Также к операторам перехода относится ключевое слово return, но для его изучения Вам нужно продвинуться чуть-чуть дальше в нашем самоучителе. Поэтому, в этой статье про него рассказывать не будем. Вы узнаете о нем немного позже.
Оператор break
С английского «break» переводится как «останавливать, прерывать«. Как уже было сказано выше, оператор break позволяет прервать выполнение цикла в любой удобный для программиста момент — раньше, чем цикл «должен был бы» завершиться. Примерно вот так:
Синтаксис
Записывается оператор break так:
Как видите, никаких скобочек, точечек или чего-нибудь еще — просто ключевое слово «break«, а потом точка с запятой. Сказал как «остановил»:)
Оператор break для выхода из цикла
В цикле (например, в цикле while) он будет выглядеть так:
class Test < public static void main ( String args [ ] ) < while ( i < = 5 ) < System . out . println ( i + ": цикл выполняется!" ) ;
Итак, что тут происходит?
Тут у нас есть цикл while, который стандартно должен был бы выполняться пять раз. Проверим это. Вот код без оператора break:
class Test < public static void main ( String args [ ] ) < while ( i < = 5 ) < System . out . println ( i + ": цикл выполняется!" ) ;
в консоли мы бы получили:
1: цикл выполняется!
2: цикл выполняется!
3: цикл выполняется!
4: цикл выполняется!
5: цикл выполняется!
Но потом мы добавляем оператор if. Мы решили, что если переменная i станет равна переменной а, (т.е. станет равна трем) нам нужно остановить цикл. Таким образом, мы написали:
В итоге, в консоле мы получили:
1: цикл выполняется!
2: цикл выполняется!
3: цикл выполняется!
То-есть когда переменная i приобрела значение 3, цикл завершился. Точно так же оператор break будет работать и с любыми другими циклами — for, do. while и так далее. просто вставьте эти строчки в нужный цикл:
Оператор break для выхода из цикла: вложенные циклы
Но тут может возникнуть вопрос — что будет, если циклов не один, а несколько? И как будет работать такой код:
class Test < public static void main ( String args [ ] ) < for ( int i = 1 ; i < = 3 ; i ++ ) < System . out . println ( "Это первый цикл! Я выполняюсь " + i + " раз" ) ; for ( int a = 1 ; a < = 10 ; a ++ ) < System . out . println ( " Это второй цикл! Я выполняюсь " + a + " раз" ) ;
Вы видите два цикла for. Во втором, «внутреннем» цикле, находится оператор break. Итак, когда выполнится условие — а именно когда а будет равен двум — остановится только второй цикл, или оба? Чтобы понять, давайте посмотрим, что покажет консоль.
Итак, в результате имеем:
Это первый цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Это первый цикл! Я выполняюсь 2 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Это первый цикл! Я выполняюсь 3 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Как видите, первый цикл выполняется 3 раза, как и должен был. При этом, второй цикл — каждый раз только два раза. А это значит, что оператор break прерывает только один цикл — тот, который его непосредственно вызывает.
Оператор break и оператор switch
И на последов, есть еще одно применение оператора break. Если Вы читали статью нашу статью про оператор switch:
то Вы могли уже встречать оператор break. Вот пример из той статьи:
Циклы в Java – как создать и прервать
Как в Java создавать циклы и управлять ими. Как с их помощью автоматизировать обработку массивов и генерацию объектов.
09 октября 2017 3 минуты 92177

Автор статьи
Мария Лисянская

Автор статьи
Мария Лисянская
https://gbcdn.mrgcdn.ru/uploads/post/1238/og_cover_image/ed12996e6ef61b13a868df82b32b1e6c

Цикл — это блок команд, который выполняется снова и снова, пока соблюдается определённое условие. Повторяемый фрагмент кода называют «телом цикла». Одно выполнение тела цикла называют итерацией.
В Яве можно работать с циклами нескольких типов — для этого есть следующие операторы:
while – цикл с предусловием – сначала проверяем условие, затем выполняем тело цикла;
do… while – цикл с постусловием – сначала выполняем один раз тело цикла, затем проверяем условие и, если оно соблюдается, продолжаем;
for – цикл со счётчиком – выполняется и при каждой итерации обновляет счётчик, пока условие в объявлении цикла соблюдается (т.е. проверка условия возвращает true);
сокращенный for (в других языках известен как foreach) – перебирает массив от первого элемента до последнего и на каждой итерации выполняет тело цикла.
Если мы используем конструкции с while, значение нужно указать перед началом цикла:
int a = 1;
System.out.println(a);
a++; //увеличиваем а на единицу
Если же переменная работает как счётчик цикла, а за его пределами не используется, её инициализируют прямо в условии. И тут же пишут, что с ней делать в конце каждой итерации. Всё это – в одну строку – с помощью for:
System.out.println(a);
Получаем тот же результат. Список можно было начать с нуля или с отрицательного значения – диапазон определяем сами.
Сокращенный вариант цикла for не содержит указаний ни на число повторов, ни на действия в конце шага. Цикл типа foreach используют для перебора массивов. От первого элемента нужно переходить к следующему – пока массив не кончится.
int[] ms = < 1, 2, 3, 4>; //создаем массив
int s = 0;
s *= i; //последовательно перемножаем элементы
System.out.println(s);
Вложенные циклы Java
Циклы можно вкладывать один в другой. При этом число повторов наружного и вложенных циклов умножается. Если внешний должен выполняться 5 раз и внутренний – 5, всего цикл будет выполнен 25 раз.
Выведем таблицу умножения с помощью двух массивов:
int a, b, result = 0;
result = a*b;
