В циклах java доступны для использования две инструкции, влияющие на их поведение: break
и continue
. Их использование не является необходимым, но все же они встречаются на практике и поэтому про них нужно знать.
Break
Инструкция break
производит выход из цикла (Не из метода!). Встретив ее, Java перестает выполнять текущий цикл и переходит к инструкциям, идущими сразу за циклом.
String[] values = {"one", "two", "stop", "three", "four", "five"};
for (var value : values) {
if (value.equals("stop")) {
break;
}
System.out.println(value);
}
System.out.println("after loop");
// => "one"
// => "two"
// => "after loop"
То же самое можно получить без break
, используя цикл while
:
String[] values = {"one", "two", "stop", "three", "four", "five"};
var i = 0;
// Нужна проверка на границу массива,
// иначе можно получить индекс выходящий за последний элемент
while (i < values.length && values[i] != "stop") {
System.out.println(values[i]);
i++;
}
Continue
Инструкция continue
позволяет пропустить итерацию цикла. Теперь выведем на экран только слово stop:
String[] values = {"one", "two", "stop", "three", "four", "five"};
for (var value : values) {
// В условии отрицание
if (!value.equals("stop")) {
continue;
}
System.out.println(value);
}
// => "stop"
Эту проверку проще сделать через условие вхождения:
String[] values = {"one", "two", "stop", "three", "four", "five"};
for (var value : values) {
if (value.equals("stop")) {
System.out.println(value);
}
// Ничего не делаем если это не "stop"
}
// => "stop"
Итого
break
и continue
призваны добавить гибкости в управление процессом обхода. На практике же, всегда можно построить код без них и, скорее всего, он будет даже проще. Однако, в реальном коде они встречаются и знать про их существование и поведение нужно.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.