JavaRush /Курси /C# SELF /Керування циклом: оператори break і continue

Керування циклом: оператори break і continue

C# SELF
Рівень 4 , Лекція 4
Відкрита

1. Вступ

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

Оператори break і continue у C# створено саме для цього. Розберімося, як вони працюють і для чого стануть у пригоді в реальних завданнях.

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;
bool found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        Console.WriteLine("Знайдено дільник " + i );
        break; // Зупиняємо цикл — більше нічого шукати не потрібно!                
    }    
}

if (!found)
{
    Console.WriteLine("Дільника не знайдено — число просте.");
}

Приклад 2: перевірка введення користувача

Напишімо невеликий застосунок, наприклад, інтерактивну анкету для збирання даних:

while (true)
{
    Console.Write("Введіть свій вік: ");
    string input = Console.ReadLine();
    int age;
    if (int.TryParse(input, out age) && age > 0)
    {
        Console.WriteLine($"Чудово! Ваш вік: {age}");
        break;   // Дані введено коректно — час завершувати цикл!
    }
    else
    {
        Console.WriteLine("Помилка! Введіть коректний додатний вік.");
    }
}

Навіщо це потрібно:
Іноді потрібно виконувати цикл нескінченно (або дуже довго), поки користувач не введе коректні дані. Щойно відбудеться те, що нас влаштовує — застосовуємо 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; // якщо число парне — пропускаємо все, що нижче!
    }
    Console.WriteLine("Непарне число: " + i);
}
Пропуск парних чисел за допомогою continue

Що відбувається:
Коли i = 2, 4, 6… цикл зустрічає continue і одразу перескакує до наступної ітерації, не виконуючи Console.WriteLine.

Покрокова візуалізація роботи:

i i % 2 == 0 Дія
1 false виведення, continue немає
2 true continue, виведення немає
3 false виведення, continue немає
4 true continue, виведення немає
... ... ...

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

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