Одна цікава річ в циклі while полягає в тому, що якщо умова циклу з самого початку дорівнює false, то тіло циклу не буде виконуватися взагалі. Але іноді бувають випадки, коли потрібно, щоб цикл виконався хоча б один раз, наприклад, при відображенні меню. Для вирішення цієї проблеми мова C++ надає цикл do while.
Синтаксис циклу do while в мові C++:
do
тіло циклу;
while (умова);
Тіло циклу do while завжди виконується хоча б один раз. Після виконання тіла циклу перевіряється умова. Якщо вона істинна, то виконання переходить до початку блока do і тіло циклу виконується знову.
Нижче наведено приклад використання циклу do while для відображення меню:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> int main() { // Змінна choice повинна бути оголошена поза тілом циклу do while int choice; do { std::cout << "Please make a selection: \n"; std::cout << "1) Addition\n"; std::cout << "2) Subtraction\n"; std::cout << "3) Multiplication\n"; std::cout << "4) Division\n"; std::cin >> choice; } while (choice != 1 && choice != 2 && choice != 3 && choice != 4); // Щось робимо зі змінною choice (наприклад, використовуємо оператор switch) std::cout << "You selected option #" << choice << "\n"; return 0; } |
Цікаво, що змінна choice
повинна бути оголошена поза блоками do while. Чому так?
Якби змінна choice
була оголошена всередині блоку do, то вона була б знищена при завершенні цього блоку ще до перевірки умови while. Але нам потрібна змінна, яка буде використовуватися в умові while, отже, змінна choice
повинна бути оголошена поза блоком do.
Загалом, використовувати do while замість while, коли потрібно, щоб цикл виконався хоча б один раз, є хорошою практикою.