do-while цикл — це універсальна конструкція циклу в C++, яка гарантує, що тіло циклу виконується принаймні один раз перед тим, як буде оцінено умову циклу. Це робить її особливо корисною в таких сценаріях, як програми з меню, перевірка введення та ситуації, де потрібно виконати початкову операцію без умов.
У цьому блозі ми розглянемо синтаксис, функціональність, варіанти використання та приклади використання циклу do-while
у C++. Давайте зануримось у це! 🚀
Що таке цикл do-while? 🤔
Цикл do-while
— це посттестовий цикл, що означає, що умова перевіряється після виконання тіла циклу. Це гарантує, що тіло циклу буде виконано хоча б один раз, незалежно від того, чи є умова спочатку істинною чи хибною.
Синтаксис:
do {
// Тіло циклу
} while (умова);
- Тіло циклу: Блок коду, який виконується повторно.
- Умова: Булева вираз, який визначає, чи буде цикл продовжено. Цикл завершується, коли умова набирає значення
false
. - Точка з комою: Цикл
do-while
завершується крапкою з комою (;
), на відміну від інших циклів.
Як працює цикл do-while 🛠️
- Тіло циклу виконується без умови.
- Перевіряється умова.
- Якщо умова істинна, тіло циклу виконується знову.
- Якщо умова хибна, цикл завершується.
Ключові особливості циклу do-while 🌟
- Гарантоване виконання: Тіло циклу виконується хоча б один раз.
- Ідеально підходить для перевірки введення: Гарантує, що користувача буде запитано хоча б один раз перед перевіркою введення.
- Посттестовий цикл: Умова перевіряється після виконання тіла циклу, на відміну від циклів
while
.
Приклади використання циклів do-while 📚
Розглянемо практичні приклади, щоб зрозуміти, як ефективно використовувати цикли do-while
.
1. Перевірка введення
Переконайтесь, що користувач вводить число від 1 до 5:
#include
using namespace std;
int main() {
int number;
do {
cout << "Введіть число від 1 до 5: ";
cin >> number;
if (number < 1 || number > 5) {
cout << "Невірне введення. Спробуйте ще раз.\n";
}
} while (number < 1 || number > 5);
cout << "Ви ввели: " << number << endl;
return 0;
}
Виведення:
- Введення:
0
→Невірне введення. Спробуйте ще раз.
- Введення:
6
→Невірне введення. Спробуйте ще раз.
- Введення:
3
→Ви ввели: 3
2. Програма з меню
Створимо просту систему меню для взаємодії з користувачем:
#include
using namespace std;
int main() {
char selection;
do {
cout << "\nМеню:\n";
cout << "1. Опція 1\n";
cout << "2. Опція 2\n";
cout << "3. Опція 3\n";
cout << "Q. Вийти\n";
cout << "Введіть ваш вибір: ";
cin >> selection;
if (selection == '1') {
cout << "Ви вибрали Опцію 1.\n";
} else if (selection == '2') {
cout << "Ви вибрали Опцію 2.\n";
} else if (selection == '3') {
cout << "Ви вибрали Опцію 3.\n";
} else if (tolower(selection) != 'q') {
cout << "Невірний вибір. Спробуйте ще раз.\n";
}
} while (tolower(selection) != 'q');
cout << "До побачення!\n";
return 0;
}
Виведення:
Меню:
1. Опція 1
2. Опція 2
3. Опція 3
Q. Вийти
Введіть ваш вибір: 2
Ви вибрали Опцію 2.
Меню:
1. Опція 1
2. Опція 2
3. Опція 3
Q. Вийти
Введіть ваш вибір: Q
До побачення!
Обчислення площі з повторенням
Обчислімо площу прямокутників, поки користувач не вийде:
include
using namespace std;
int main() {
char selection;
do {
double width, height;
cout << "Введіть ширину: ";
cin >> width;
cout << "Введіть висоту: ";
cin >> height;
double area = width * height;
cout << "Площа: " << area << endl;
cout << "Бажаєте обчислити ще одну площу (Y/N)? ";
cin >> selection;
} while (tolower(selection) == 'y');
cout << "Дякуємо за використання калькулятора площ!" << endl;
return 0;
}
```
Виведення:
Введіть ширину: 5
Введіть висоту: 10
Площа: 50
Бажаєте обчислити ще одну площу (Y/N)? y
Введіть ширину: 7
Введіть висоту: 3
Площа: 21
Бажаєте обчислити ще одну площу (Y/N)? n
Дякуємо за використання калькулятора площ!
Порівняння: While vs. Do-While ⚔️
Кращі практики використання циклів do-while ✅
Використовуйте, коли виконання має відбутися хоча б один раз:
- Ідеально підходить для таких завдань, як показ меню або запит користувача.
Забезпечте чітке умови виходу:
- Уникайте нескінченних циклів, переконавшись, що умова зрештою стане
false
.
Тримайте логіку простою:
- Дотримуйтесь принципу KISS (Keep It Simple, Stupid), щоб уникнути надмірно складних умов.
Комбінуйте з перевіркою введення:
- Використовуйте перевірку введення для забезпечення надійної взаємодії з користувачем.
Коли використовувати цикл do-while 🤔
- Меню-системи: Показувати меню хоча б один раз і повторювати до тих пір, поки користувач не вибере вихід.
- Перевірка введення: Запитувати користувача на правильне введення і повторно запитувати за потреби.
- Початкові операції: Виконати задачу без умови перед тим, як перевірити, чи слід її повторювати.
Висновок 🎉
Цикл do-while в C++ є незамінним інструментом для сценаріїв, коли хоча б один прохід тіла циклу обов'язковий. Його посттестова природа робить його ідеальним для перевірки введення, меню-драйвних програм і повторюваних завдань з чіткими умовами виходу. Зрозумівши його синтаксис і практичне застосування, ви зможете ефективно використовувати цикл do-while, щоб спростити ваш код і покращити його зручність для читання.
Експериментуйте з наведеними прикладами та не забувайте ретельно перевіряти умови, щоб уникнути нескінченних циклів. Успіхів у програмуванні! 🚀
by : Malinda Gamage
Перекладено з: Mastering the Do-While Loop in C++: A Complete Guide 🔄💻