Оператор break в Java
- Данная статья написана командой Vertex Academy.
- Это одна из статей из нашего "Самоучителя по Java"
Для понимания этой статьи желательно знать, что такое циклы, которые мы рассматривали в статье Что такое циклы в Java? И какие есть виды циклов?
Оператор break - это один из операторов перехода. Что такое оператор перехода?
Если Вы уже сталкивались с циклами, то Вы уже знаете, что все они, чаще всего, имеют одинаковые составляющие:
- переменную итерации
- условие
- шаг итерации
For, while, do... while выполняют одинаковые функции. Можно сказать, что циклы достаточно простые и предсказуемые - они просто изменяют заданную переменную n-ное количество раз.
Но существуют ключевые слова, которые дают нам больше власти над циклом. Они позволяют нам:
- завершить цикл раньше времени (оператор break)
- проигнорировать часть кода (оператор continue)
В некоторых ситуациях они позволят Вам найти более практичное и элегантное решение поставленных задач. Давайте рассмотрим их подробнее.
Также к операторам перехода относится ключевое слово return, но для его изучения Вам нужно продвинуться чуть-чуть дальше в нашем самоучителе. Поэтому, в этой статье про него рассказывать не будем. Вы узнаете о нем немного позже.
Оператор break
С английского "break" переводится как "останавливать, прерывать". Как уже было сказано выше, оператор break позволяет прервать выполнение цикла в любой удобный для программиста момент - раньше, чем цикл "должен был бы" завершиться. Примерно вот так:
Синтаксис
Записывается оператор break так:
1 |
break; |
Как видите, никаких скобочек, точечек или чего-нибудь еще - просто ключевое слово "break", а потом точка с запятой. Сказал как "остановил":)
Оператор break для выхода из цикла
В цикле (например, в цикле while) он будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Test { public static void main(String args[]){ int i; int a; i = 1; a = 3; while(i <= 5){ System.out.println(i + ": цикл выполняется!"); if (i == a) break; i++; } } } |
Итак, что тут происходит?
Тут у нас есть цикл while, который стандартно должен был бы выполняться пять раз. Проверим это. Вот код без оператора break:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Test { public static void main(String args[]){ int i; int a; i = 1; a = 3; while(i <= 5){ System.out.println(i + ": цикл выполняется!"); i++; } } } |
в консоли мы бы получили:
1: цикл выполняется!
2: цикл выполняется!
3: цикл выполняется!
4: цикл выполняется!
5: цикл выполняется!
Но потом мы добавляем оператор if. Мы решили, что если переменная i станет равна переменной а, (т.е. станет равна трем) нам нужно остановить цикл. Таким образом, мы написали:
1 2 |
if (i == a) break; |
В итоге, в консоле мы получили:
1: цикл выполняется!
2: цикл выполняется!
3: цикл выполняется!
То-есть когда переменная i приобрела значение 3, цикл завершился. Точно так же оператор break будет работать и с любыми другими циклами - for, do... while и так далее. просто вставьте эти строчки в нужный цикл:
1 2 |
if (i == a) break; |
Оператор break для выхода из цикла: вложенные циклы
Но тут может возникнуть вопрос - что будет, если циклов не один, а несколько? И как будет работать такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 + " раз"); if (a == 2) break; } } } } |
Вы видите два цикла for. Во втором, "внутреннем" цикле, находится оператор break. Итак, когда выполнится условие - а именно когда а будет равен двум - остановится только второй цикл, или оба? Чтобы понять, давайте посмотрим, что покажет консоль.
Итак, в результате имеем:
Это первый цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Это первый цикл! Я выполняюсь 2 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Это первый цикл! Я выполняюсь 3 раз
Это второй цикл! Я выполняюсь 1 раз
Это второй цикл! Я выполняюсь 2 раз
Как видите, первый цикл выполняется 3 раза, как и должен был. При этом, второй цикл - каждый раз только два раза. А это значит, что оператор break прерывает только один цикл - тот, который его непосредственно вызывает.
Оператор break и оператор switch
И на последов, есть еще одно применение оператора break. Если Вы читали статью нашу статью про оператор switch:
то Вы могли уже встречать оператор break. Вот пример из той статьи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.Scanner; // импорт сканера class Test { public static void main(String args[]){ System.out.println("Введите 1, 2, 3 или 4"); Scanner scan = new Scanner(System.in); int number = scan.nextInt(); switch (number){ case 1: System.out.println ("Вы ввели число 1"); break; case 2: System.out.println ("Вы ввели число 2"); break; case 3: System.out.println ("Вы ввели число 3"); break; case 4: System.out.println ("Вы ввели число 4"); break; default: System.out.println("Вы ввели неправильное число"); } } } |
Как Вы видите, каждый кейс заканчивается словом break:
Это еще одно применение оператора. Тут он выполняет ту же самую функцию - заставляет завершить цикл. Он как бы говорит "Ты нашел то, что искал - зачем работать дальше?".
Заключение
Поздравляем - теперь Вы знаете, как работает оператор break!
Итак, пройдемся по основам пунктам:
- break вызывается лаконично - просто break и точка с запятой;
- break работает одинаково для всех циклов - while, for, do...while и др.;
- break прерывает выполнение только одного цикла - того, который его непосредственно вызывает;
- break применяется в операторе switch.
Понравилась наша статья? Есть возможность записаться к нам на курсы. Детальнее у нас на сайте.