JavaRush /Курсы /JAVA 25 SELF /Управление циклом: операторы break и continue

Управление циклом: операторы break и continue

JAVA 25 SELF
4 уровень , 4 лекция
Открыта

1. Введение

Часто бывает ситуация, когда вам не нужно прокручивать все итерации цикла до конца, а нужно выйти из него досрочно — например, как только вы нашли искомый элемент. В других случаях нужно пропустить часть работы и перейти к следующему шагу (например, вы прочитали данные и хотите пропустить их обработку). Это и есть управление потоком внутри цикла.

Операторы break и continue в Java предназначены именно для этого. Давайте разберёмся, как они работают и для чего пригодятся в реальных задачах.

2. Оператор break: "Стоп, машина!"

Теория и синтаксис

Оператор break используется для немедленного выхода из цикла, где бы вы ни находились в его теле. Как только исполнение программы доходит до break, цикл тут же завершает работу, и выполнение продолжается с первой строки кода после цикла.


while (условие)
{
    if (какое-то_условие)
    {
        break;
    }
    // остальной код цикла
}
Использование break в цикле while

То же самое работает и для for, и для do-while:

for (int i = 0; i < 10; i++)
{
    if (какое-то_условие)
    {
        break;
    }
    // остальной код цикла
}

Пример 1: проверка числа на простоту

Число является простым, если оно делится только на 1 и на себя. Нам нужно проверить число на простоту: перебрать все потенциальные делители от 2 до n-1. Если выяснилось, что наше число делится на делитель, то дальше проверять не нужно — число не простое! Можно заканчивать цикл.

Пример:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("Нашли делитель " + i );
        break; // Останавливаем цикл, ничего больше искать не нужно!                
    }    
}

if (!found)
{
    System.out.println("Делитель не найден - число простое.");
}

Пример 2: валидация пользовательского ввода

Давайте напишем небольшое приложение, например, интерактивную анкету для сбора данных:

while (true)
{
    System.out.print("Введите свой возраст: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("Отлично! Ваш возраст: " + age);
            break; // данные корректные — выходим
        }
        else
        {
            System.out.println("Ошибка! Введите положительный возраст.");
        }
    }
    else
    {
        System.out.println("Ошибка! Введите число.");
        console.nextLine(); // съедаем некорректный ввод
    }
}

Зачем это нужно:
Иногда нужно крутить цикл бесконечно (или очень долго), пока пользователь не введёт корректные данные. Как только произошло событие, которое нас устраивает — применяем break и окончательно выходим из цикла.

3. Оператор continue: "Следующий, пожалуйста!"

Теория и синтаксис

В отличие от break, оператор continue не завершает весь цикл, а лишь прерывает текущую итерацию: всё, что написано после continue в теле цикла, НЕ выполняется — происходит переход к следующей итерации.


for (int i = 0; i < 10; i++)
{
    if (условие)
    {
        continue;
    }
    // эта часть выполнится только если continue не сработал
}
Использование continue в цикле for

Пример 3: пропуск чётных чисел

Представьте, что вам нужно вывести только нечётные числа из диапазона. Чётные надо пропускать.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // если число чётное — пропускаем всё, что ниже!
    }
    System.out.println("Нечетное число: " + i);
}
Пропуск чётных чисел с помощью continue

Что происходит:
Когда i = 2, 4, 6... цикл встречает continue и сразу перескакивает к следующей итерации, не выполняя System.out.println.

Визуализация работы по шагам:

i i % 2 == 0 Действие
1 false print, continue нет
2 true continue, print нет
3 false print, continue нет
... ... ...

Операторы break и continue используются очень часто. Фактически в каждом втором цикле. Вам понравится с ними работать.

1
Задача
JAVA 25 SELF, 4 уровень, 4 лекция
Недоступна
Поиск секретного кода 🔐
Поиск секретного кода 🔐
1
Задача
JAVA 25 SELF, 4 уровень, 4 лекция
Недоступна
Отбор качественных товаров 📦
Отбор качественных товаров 📦
1
Задача
JAVA 25 SELF, 4 уровень, 4 лекция
Недоступна
Проверка на простое число ❓
Проверка на простое число ❓
1
Задача
JAVA 25 SELF, 4 уровень, 4 лекция
Недоступна
Суммирование ежедневных продаж 💰
Суммирование ежедневных продаж 💰
Комментарии (22)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #1883657 Уровень 8
15 февраля 2026
Цикл for(element : collection) в Java (расширенный цикл for, for-each) — это конструкция, которая позволяет перебирать элементы коллекции или массива без использования индексов. Подробнее в статье Что такое foreach в Java?: https://javarush.com/groups/posts/for-each-java
Paulina Уровень 5
14 февраля 2026
Доброго дня! Подскажите, что значит "съедаем некорректный ввод" в примере 2? Почему мы добавляем console.nextLine(), если ожидаем число, а не строку?

   else
    {
        System.out.println("Ошибка! Введите число.");
        console.nextLine(); // съедаем некорректный ввод
11 февраля 2026
Четвертая задача не проходит проверку даже в случае, если проверяешь предложенное решение) . В решении используются переменные int, а проверка предлагает использовать double.
Андрей Уровень 13
4 февраля 2026
Добрый день! Про объявления массивов, и их перебор в цикле For в предыдущих лекциях вроде ничего не говорилось. Может что-то добавить в лекции про целые числа?
Anthony L. Gershman Уровень 8
15 января 2026
1. Здесь введён цикл for(element : collection), в то время, как рассмотрен только for(init;cond;action). 2. С определённого момента Ctrl+стрелки стали работать как перемещение между лекциями, что свело удобство написания комментария к 1% от прежнего.
Anonymous #3421789 Уровень 9
11 января 2026
Зачем проверять до n-1, если достаточно до n/2+1???
Anonymous #6413862 Уровень 7
24 октября 2025
это нормально что из ниоткуда взялись hasNextInt и массивы??? мб стоит как-то постепенно рассказывать о них?
Stanislav Muzulev Уровень 21
4 января 2026
Этот курс как мне кажется не совсем с нуля лучше проходить, хотя бы Core нужно пройти из старого по Java)
Peter Уровень 6
17 января 2026
Это тактика javarush. Они во всех курсах периодически вводят чтото новое, что не проходилось. Курс расчитан на то, что вы пользуетесь и другими источниками и книгами и видео и прочее, так что всё нормально, привыкайте.
Victor Уровень 40
27 января 2026
То ли ещё будет. В целом можно сказать - будут предлагать изучать ВСЁ самостоятельно, обозначая только общее направление.
Anonymous #1883657 Уровень 8
14 февраля 2026
Про hasNextInt и другие методы класса Scanner можно прочитать здесь: https://javarush.com/groups/posts/klass-scanner
Anonymous #1883657 Уровень 8
14 февраля 2026
Про массивы можно прочитать тут: https://javarush.com/quests/lectures/questsyntaxpro.level05.lecture00
Oreshkin Andrey Уровень 5
8 октября 2025
массив и isPrime - стали полной неожиданностью для меня конечно
Ivan Уровень 5
28 сентября 2025
Подскажите, пожалуйста, как в IDEA полностью развернуть рекомендации по решению, которые написаны ниже требований к заданию?
Гуманитарий Уровень 8
6 октября 2025
Правый угол условий (Condition) - три точки по вертикали (Options) - View Mode - Window
Ivan Уровень 5
6 октября 2025
Спасибо большое!)
Сергей Уровень 8
13 сентября 2025
Как то внезапно перескочили на массивы :)
Ksanders Уровень 32
25 сентября 2025
Есть такое, было весьма неожиданно :-)
Серега Батенин Уровень 12
27 сентября 2025
и цикл форыч)
Anonymous #3611806 Уровень 24
27 сентября 2025
Это называется плохо составленный план задач, к сожалению тут этим часто грешат еще на старых курсах, как будто ИИшка нагенерила
Popka Уровень 24
21 декабря 2025
Это не "плохо составленный план задач", а наоборот специальная методика. Тебе в понятную задачу специально заранее пихают что-то новое, чтобы ты столкнулся с "проблемой" и попытался ее решить. А потом ты читаешь лекцию по этой уже решенной тобой окольными путями "проблеме" и информация ложится куда проще и обучение происходит эффективнее. Логика проста - мозг новичка сталкиваясь с проблемой пытается найти решение, а старичек использует ОПЫТ. И зачастую свежее решение полезнее опыта. Если тебе просто будут давать лекцию + задачу по ней, то ты как бревно будешь впитывать только то, что положено. А подобная механика с "проблемой" и "новичком" позволяет твоему мозгу развиваться разностороннее и искать нестандартные пути решения одной и той же проблемы. В общем, подобный "плохо составленный план задач" делает из тебя не старый кухонный нож, а многозадачный швейцарский нож, причем куда быстрее и эффективнее. И да: раньше этот механизм был куда жестче..
20 января 2026
Согласен, в книге изучаем Java тоже используется этот метод, и он весьма эффективный