Skip to main content

Що таке цикл з постумовою?

Коротка відповідь

Цикл з постумовою - це такий цикл, у якому перевірка умови виконується після тіла циклу. Тому тіло виконується мінімум один раз. Класичний приклад - конструкція do...while у мовах сімейства C/Java/JS.

Докладний розбір

Визначення і ключові властивості

  • Перевірка умови - після виконання тіла ітерації.
  • Гарантовано виконується хоча б одна ітерація, навіть якщо умова спочатку хибна.
  • Використовується, коли потрібно виконати дію мінімум один раз (наприклад, показати меню, запросити введення тощо).
  • Типовий варіант у C-подібних мовах: do { ... } while (умова);

Синтаксис і приклади

JavaScript / Java / C / C++: do...while

javascript
let i = 10; do { console.log("Виконалося хоча б раз: i =", i); i++; } while (i < 0); // Умова хибна із самого початку (10 < 0 - false), // але тіло виконалося один раз.

Практичний приклад: запитуємо у користувача число в діапазоні 1-10. Тіло виконується мінімум один раз, щоб зробити перший запит.

javascript
let num; do { const input = prompt("Введіть число від 1 до 10:"); num = Number(input); } while (Number.isNaN(num) || num < 1 || num > 10); console.log("Ви ввели:", num);

Python: еквівалент через while True + break

У Python немає вбудованого do...while, але поведінку циклу з постумовою легко виразити через нескінченний цикл із явним break після перевірки умови.

python
while True: num = int(input("Введіть число від 1 до 10: ")) if 1 <= num <= 10: break print("Ви ввели:", num)

Чим відрізняється від циклу з передумовою (while)?

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

Еквівалентне перетворення

Цикл з постумовою можна переписати в цикл з передумовою, але тільки з дублюванням тіла один раз перед while:

text
do { // тіло } while (cond); // Еквівалентно // тіло while (cond) { // тіло }

Типові сценарії використання

  • Введення користувача/меню: хоча б один показ форми/меню.
  • Повтор спроби: мінімум одна спроба виконання операції (наприклад, запиту до API) і повтор при неуспіху до N разів.
  • Ініціалізація, що залежить від результату першої ітерації: спершу виконати дію, потім вирішити, чи продовжувати.

Важливі нюанси і пастки

  • Ризик нескінченного циклу: переконайтеся, що стан, який впливає на умову, змінюється всередині тіла.
  • Побічні ефекти в умові: уникайте складної логіки в умові while; краще обчислювати прапорець заздалегідь.
  • Синтаксис у C-подібних мовах: після while (cond) обов'язковий завершальний символ ';'.
  • Ініціалізація: пам'ятайте, що перша ітерація виконується до перевірки - коректно підготуйте вхідні дані/стан.

Коротко для співбесіди

  • Визначення: цикл з перевіркою умови після тіла (do...while).
  • Гарантія: мінімум одна ітерація.
  • Порівняння: на відміну від while/for, перевірка - в кінці.
  • Використання: введення/меню/повтор операцій до валідного результату.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.