break и continue
Пропускайте и завершайте итерации
«break и continue» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Зачем управлять циклом
Циклы повторяют код, но иногда нужно завершить их раньше или пропустить элемент.
Java предоставляет для этого два простых инструмента: оператор прерывания полностью завершает цикл, а оператор перехода к следующей итерации пропускает текущий проход.
В этом уроке Вы узнаете, когда именно срабатывает каждый из них и как они изменяют ход цикла.
Оператор прерывания
Ключевое слово прерывание немедленно останавливает ближайший цикл.
Выполнение переходит к первой строке после цикла. Все оставшиеся итерации отменяются.
В примере ниже цикл останавливается, как только значение i достигает 3.
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
System.out.println("i = " + i);
}
System.out.println("Done");
}
}Что вывел оператор прерывания
Программа вывела i = 1 и i = 2, а затем Готово.
Когда i стало равно 3, сработало прерывание, поэтому значения 3, 4 и 5 не были выведены.
Прерывание идеально подходит, когда Вы нашли нужное значение и хотите прекратить поиск.
Оператор перехода к следующей итерации
Ключевое слово переход к следующей итерации пропускает оставшуюся часть текущей итерации.
Цикл не останавливается. Выполнение возвращается к заголовку цикла и переходит к следующему значению.
Здесь мы пропускаем число 3, но продолжаем выполнение.
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println("i = " + i);
}
}
}Что вывел переход к следующей итерации
Результатом были значения 1, 2, 4 и 5. Значение 3 пропустили, но цикл продолжил работу.
В этом и состоит главное различие: прерывание покидает цикл, а переход к следующей итерации пропускает только один проход.
Пропуск чётных чисел
Частый случай использования перехода к следующей итерации — фильтрация. Мы пропускаем значения, которые нас не интересуют.
Этот цикл выводит только нечётные числа, переходя к следующей итерации всякий раз, когда встречает чётное число.
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 8; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}Прерывание в цикле с предусловием
Прерывание и переход к следующей итерации работают со всеми типами циклов: цикл с параметром, цикл с предусловием и цикл с постусловием.
Этот цикл с предусловием увеличивает счётчик, но выходит из цикла сразу после того, как сумма превышает 10.
public class Main {
public static void main(String[] args) {
int total = 0;
int n = 1;
while (true) {
total += n;
if (total > 10) {
break;
}
n++;
}
System.out.println("Stopped at total = " + total);
}
}Прерывание выходит только из одного цикла
Важное правило: обычное прерывание завершает только самый внутренний окружающий его цикл.
Если один цикл находится внутри другого, прерывание покидает внутренний цикл. Внешний цикл продолжает работу.
Внимательно рассмотрите этот вложенный пример.
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (col == 2) {
break;
}
System.out.println("row " + row + ", col " + col);
}
}
}
}Результат вложенного прерывания
Прерывание остановило только внутренний цикл по столбцам, поэтому в каждой строке вывелся лишь столбец 1.
Внешний цикл по строкам продолжил работу для всех трёх строк.
Чтобы одновременно выйти из обоих циклов, нужен именованный оператор прерывания. С ним Вы познакомитесь в следующем уроке.
Переход к следующей итерации тоже затрагивает ближайший цикл
Как и прерывание, обычный переход к следующей итерации влияет только на цикл, расположенный непосредственно вокруг него.
Во вложенных циклах переход выполняется к следующей итерации внутреннего цикла, а не внешнего.
Помните об этом, когда логика программы охватывает два цикла.
public class Main {
public static void main(String[] args) {
for (int a = 1; a <= 2; a++) {
for (int b = 1; b <= 3; b++) {
if (b == 2) {
continue;
}
System.out.println(a + "-" + b);
}
}
}
}Простая мысленная модель
Представьте цикл как дорожку, по которой Вы бегаете.
Прерывание — сойти с дорожки и уйти. Переход к следующей итерации — пропустить текущий круг и перейти к стартовой линии следующего.
Оба действия относятся только к текущей дорожке и никогда — к расположенной снаружи.
Быстрая проверка
Проверьте, насколько хорошо Вы понимаете различие между прерыванием и переходом к следующей итерации.
Итоги
Вы узнали, что прерывание завершает ближайший цикл, а переход к следующей итерации переходит к его следующей итерации.
Во вложенных циклах оба действия влияют только на самый внутренний цикл. Чтобы управлять внешним циклом, нужны метки, с которыми Вы познакомитесь дальше.
Часто задаваемые вопросы
Урок «break и continue» бесплатный?
Да — полный текст урока «break и continue» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «break и continue»?
Пропускайте и завершайте итерации Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «break и continue»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.