Цикл while є основною конструкцією управління в програмуванні, який використовується для багаторазового виконання блоку коду на основі умови. Його простота і гнучкість роблять його незамінним інструментом для таких задач, як підрахунок, ітерація по масивам або перевірка введених даних. У цьому блозі ми розглянемо синтаксис, випадки використання та найкращі практики циклу while у C++, з прикладами для кращого розуміння.
Що таке цикл while? 🤔
Цикл while у C++ є попередньо тестованим циклом, що означає, що умова перевіряється перед виконанням тіла циклу. Якщо умова оцінюється як true
, тіло циклу виконується; в іншому випадку цикл завершується відразу.
Синтаксис:
while (умова) {
// Тіло циклу
}
- Умова: Булевий вираз, що визначає, чи буде цикл виконуватись.
- Тіло циклу: Блок коду, який виконується багаторазово, поки умова залишається
true
.
Як це працює 🛠️
- Перевіряється умова.
- Якщо умова
true
, виконується тіло циклу. - Після виконання тіла умова перевіряється знову.
- Процес повторюється, поки умова не стане
false
.
Приклади циклів while 📚
Розглянемо декілька практичних прикладів використання циклів while у C++.
1. Простий цикл підрахунку
Цикл, який рахує від 1 до 5:
#include
using namespace std;
int main() {
int i = 1; // Ініціалізація лічильника
while (i <= 5) {
cout << i << " ";
i++; // Збільшення лічильника
}
return 0;
}
Виведення:
1 2 3 4 5
- Основний момент: Завжди перевіряйте, щоб лічильник (
i
) збільшувався, інакше цикл буде працювати нескінченно.
2. Виведення парних чисел
Виведення парних чисел від 1 до 10:
#include
using namespace std;
int main() {
int i = 1;
while (i <= 10) {
if (i % 2 == 0) {
cout << i << " ";
}
i++; // Збільшення лічильника незалежно від умови
}
return 0;
}
Виведення:
2 4 6 8 10
3. Ітерація по масиву
Використання циклу while для ітерації по масиву цілих чисел:
#include
using namespace std;
int main() {
int scores[] = {100, 90, 97};
int i = 0;
while (i < 3) { // Цикл, поки i не досягне розміру масиву
cout << scores[i] << " ";
i++;
}
return 0;
}
Виведення:
100 90 97
4. Перевірка введених даних
Цикл while часто використовується для перевірки введених даних. Наприклад, перевірка, чи ввів користувач ціле число менше 100:
#include
using namespace std;
int main() {
int number = 0;
cout << "Enter an integer less than 100: ";
cin >> number;
while (number >= 100) {
cout << "Invalid input. Please enter an integer less than 100: ";
cin >> number;
}
cout << "Thanks! You entered: " << number << endl;
return 0;
}
Виведення:
- Вхід:
150
→ Виведення:Invalid input. Please enter an integer less than 100:
- Вхід:
50
→ Виведення:Thanks! You entered: 50
5. Підрахунок до числа, введеного користувачем
Підрахунок від 1 до числа, введеного користувачем:
#include
using namespace std;
int main() {
int num;
cout << "Enter a positive integer: ";
cin >> num;
int i = 1;
while (i <= num) {
cout << i << " ";
i++;
}
return 0;
}
Виведення:
- Вхід:
3
→ Виведення:1 2 3
6. Використання булевої змінної для перевірки введених даних
Замість дублювання коду, використовуйте булеву змінну для управління циклом:
#include
using namespace std;
int main() {
bool done = false; // Ініціалізація змінної
int number;
while (!done) {
cout << "Enter an integer between 1 and 5: ";
cin >> number;
if (number > 1 && number < 5) {
cout << "Thanks! You entered: " << number << endl;
done = true; // Вихід з циклу
} else {
cout << "Invalid input. Try again." << endl;
}
}
return 0;
}
Виведення:
- Вхід:
0
→ Виведення:Invalid input. Try again.
- Вхід:
6
→ Виведення:Invalid input. Try again.
Спробуйте ще раз.` - Вхід:
3
→ Виведення:Thanks! You entered: 3
Поширені помилки з циклами while ❌
Безкінечні цикли:
- Забування оновити змінну циклу.
- Приклад:
int i = 0;
while (i < 5) {
cout << i; // Без збільшення
}
- Рішення: Завжди переконуйтесь, що умова циклу врешті стане
false
.
Помилки на одну одиницю:
- Використання некоректних умов циклу (наприклад,
<
замість<=
). - Подвійно перевіряйте граничні умови вашого циклу.
Складні умови:
- Уникайте занадто складних умов, які важко зрозуміти.
Кращі практики використання циклів while ✅
Тримайте все простим:
- Використовуйте чіткі і зрозумілі умови циклу.
- Дотримуйтесь принципу KISS: Keep It Simple, Stupid!
Перевіряйте введені дані:
- Завжди перевіряйте введені користувачем дані, щоб уникнути непередбачуваної поведінки.
Плануйте завершення циклу:
- Переконайтесь, що умова циклу врешті стане
false
.
Використовуйте булеві прапорці, коли це необхідно:
- Булеві прапорці допомагають контролювати цикли у складних ситуаціях, підвищуючи читабельність.
Висновок 🎉
Цикл while — це універсальний інструмент у C++ для реалізації повторюваних задач, перевірки введених даних і ітерації по колекціях. Хоча його простота робить його доступним, його гнучкість дозволяє знаходити творчі рішення для складних проблем. Дотримуючись кращих практик і уникаючи поширених помилок, ви можете повною мірою використовувати потенціал циклу while у вашому програмуванні.
Експериментуйте з цими прикладами, і не забувайте: Keep It Simple and Straightforward! 🚀
by : Malinda Gamage
Перекладено з: Mastering the While Loop in C++: A Comprehensive Guide 🔄💻