OOP Course
Сьогодні

Підрозділ 2.13

Цикли

Описує цикли for, while, do while, foreach, вкладені цикли, а також оператори break і continue.

2.13. Цикли

Часто в програмі потрібно виконати одну й ту саму дію багато разів: перебрати всіх пацієнтів у списку, підрахувати суму показників, знайти максимальне значення серед вимірювань. Для цього в C# існують цикли — конструкції, що повторюють блок коду доти, поки виконується певна умова.

У C# є чотири основні типи циклів:

  • for — коли кількість ітерацій відома або можна її обчислити
  • while — коли умова перевіряється до виконання тіла
  • do...while — коли тіло повинно виконатись хоча б один раз
  • foreach — для перебору колекцій (масивів, списків тощо)

Типи циклів у C#

Цикл for

Цикл for — найуніверсальніший для випадків, коли кількість ітерацій відома заздалегідь. Оголошення складається із трьох частин, розділених крапкою з комою:

for (ініціалізація; умова; крок)
{
    // тіло циклу
}
  • Ініціалізація — виконується один раз перед першою ітерацією (зазвичай оголошення лічильника).
  • Умова — перевіряється до кожної ітерації; якщо false — цикл завершується.
  • Крок — виконується після кожної ітерації (зазвичай збільшення або зменшення лічильника).

Розберемо крок за кроком: int i = 0 — оголошуємо лічильник i з нуля. i < patientNames.Length — цикл триває, поки i не досягне довжини масиву (тобто 5). i++ — після кожної ітерації лічильник збільшується на 1. Таким чином виконується рівно 5 ітерацій: i = 0, 1, 2, 3, 4.

Кількість ітерацій не обов'язково збільшується. Цикл може йти й у зворотному напрямку:

У циклі for можна оголошувати кілька змінних та вказувати кілька виразів у кроці:

Якщо всі три частини оголошення пропустити, отримаємо нескінченний цикл — він виконується доти, поки не буде примусово зупинений оператором break:

for (;;)
{
    // нескінченно
}

Цикл while

Цикл while перевіряє умову перед виконанням тіла. Якщо умова від самого початку хибна — тіло не виконається жодного разу:

while (умова)
{
    // тіло циклу
}

Цикл do...while

Цикл do...while виконує тіло до перевірки умови. Це гарантує щонайменше одне виконання тіла, навіть якщо умова від початку хибна:

do
{
    // тіло виконується до перевірки умови
}
while (умова);

Зверніть увагу на крапку з комою після while (умова) — вона обов'язкова саме в do...while. Відмінність від while: якщо початкове значення dose вже дорівнювало б 200, цикл while не виконався б жодного разу, а do...while виконається один раз (запише 250 і перевірить умову).

Цикл foreach

Цикл foreach призначений для послідовного перебору колекцій: масивів, списків та будь-яких об'єктів, які підтримують перебір. Змінна циклу отримує значення кожного елемента по черзі:

foreach (тип змінна in колекція)
{
    // змінна містить поточний елемент
}

Тип змінної циклу повинен відповідати типу елементів колекції. Замість явного типу можна використовувати var — компілятор визначить тип самостійно:

Важливо: у foreach заборонено змінювати елементи колекції через змінну циклу. Для зміни елементів використовуйте for з індексом.

Оператор break

Оператор break негайно завершує цикл і передає керування першій інструкції після нього, незалежно від стану умови:

Оператор continue

Оператор continue пропускає решту поточної ітерації і переходить до наступної. Цикл при цьому не завершується:

Вкладені цикли

Один цикл може бути розміщений всередині іншого — так утворюються вкладені цикли. При цьому зовнішній цикл виконується N разів, і на кожній ітерації зовнішнього повністю відпрацьовує внутрішній. Загальна кількість ітерацій — добуток кількостей ітерацій усіх рівнів.

Вкладені цикли є основою алгоритмів обробки двовимірних масивів (матриць, таблиць), що детальніше розглядається у розділі 2.14.

Вибір типу циклу

  • for — кількість ітерацій відома, потрібен лічильник або потрібно проходити у зворотному напрямку.
  • while — умова відома, але кількість ітерацій — ні; тіло може не виконатись.
  • do...while — тіло повинно виконатись принаймні один раз (введення даних, меню).
  • foreach — перебір усіх елементів колекції від початку до кінця без зміни елементів.
Розроблено Tomka Yurii · © 2026 ·