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 виведення, continue немає
2 true continue, виведення немає
3 false виведення, continue немає
... ... ...

Оператори break і continue доволі поширені — їх часто застосовують у циклах. Працювати з ними зручно.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ