Лекція 5: Цикли (Loops)
Уявіть, що вам потрібно вивести фразу "Я люблю С++" 100 разів. Писати 100 рядків cout — це довго і неправильно. Для цього існують цикли — конструкції, які повторюють блок коду, доки виконується певна умова.
Структура циклу
Будь-який цикл працює за наступною схемою:
- Початок циклу — точка входу
- Перевірка умови — чи продовжувати виконання?
- Якщо умова істинна (true) → виконується тіло циклу
- Якщо умова хибна (false) → цикл завершується
- Виконання операторів — код, який повторюється
- Інкремент або декремент — зміна змінної циклу
- Повернення до перевірки умови — цикл повторюється
- Кінець циклу — вихід, коли умова стає хибною
Ця структура показує, що цикл продовжує виконуватися, поки умова залишається істинною. Як тільки умова стає хибною, цикл завершується.
1. Цикл for
Цикл for використовується, коли ми знаємо точну кількість ітерацій (повторень).
Синтаксис:
for (ініціалізація; умова; інкремент) {
// Код, який повторюється
}
Приклад: Виведення фрази 10 разів
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
cout << "Я люблю С++" << endl;
}
return 0;
}
Розбір:
int i = 1— ініціалізація: створюємо зміннуiзі значенням 1i <= 10— умова: цикл виконується, покиiменше або дорівнює 10i++— інкремент: після кожної ітераціїiзбільшується на 1
2. Цикл while (Поки)
Це найпростіший цикл. Він працює за принципом: "Поки умова істинна — роби це".
Синтаксис:
while (умова) {
// Код, що повторюється
}
Приклад (Зворотний відлік):
#include <iostream>
using namespace std;
int main() {
int counter = 5;
while (counter > 0) {
cout << counter << "..." << endl;
counter--; // Зменшуємо лічильник на 1. Це КРИТИЧНО важливо!
}
cout << "Старт!" << endl;
return 0;
}
⚠️ Небезпека:
Якщо ви забудете змінити змінну (наприклад, прибрати counter--), умова завжди буде true, і програма потрапить у нескінченний цикл. Вона "зависне", і її доведеться зупиняти примусово.
3. Цикл do-while
Цикл do-while відрізняється тим, що тіло циклу виконується хоча б один раз, навіть якщо умова хибна з самого початку.
Синтаксис:
do {
// Код, який повторюється
} while (умова);
Приклад: Меню з вибором
#include <iostream>
using namespace std;
int main() {
int choice;
do {
cout << "\nМеню:" << endl;
cout << "1. Показати привітання" << endl;
cout << "2. Показати дату" << endl;
cout << "0. Вихід" << endl;
cout << "Ваш вибір: ";
cin >> choice;
if (choice == 1) {
cout << "Привіт!" << endl;
} else if (choice == 2) {
cout << "Сьогодні гарний день!" << endl;
}
} while (choice != 0);
cout << "До побачення!" << endl;
return 0;
}
4. Вкладені цикли
Цикли можна вкладати один в один. Це корисно для роботи з двовимірними структурами даних.
Приклад: Виведення таблиці множення
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
cout << i << " x " << j << " = " << (i * j) << "\t";
}
cout << endl; // Новий рядок після кожного рядка таблиці
}
return 0;
}
5. Управління циклами: break та continue
Іноді потрібно достроково вийти з циклу або пропустити поточну ітерацію.
break— негайно завершує виконання циклуcontinue— пропускає поточну ітерацію і переходить до наступної
Приклад з break:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // Виходимо з циклу, коли i дорівнює 5
}
cout << i << " ";
}
// Виведе: 1 2 3 4
return 0;
}
Приклад з continue:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Пропускаємо парні числа
}
cout << i << " ";
}
// Виведе: 1 3 5 7 9 (тільки непарні)
return 0;
}
Практичні завдання до Лекції 5
Виконайте ці завдання в своєму середовищі розробки.
Завдання 1: Сума чисел
Напишіть програму, яка просить користувача ввести число n, а потім обчислює і виводить суму всіх чисел від 1 до n.
Підказка: Використайте цикл for та змінну-накопичувач.
Завдання 2: Факторіал
Напишіть програму, яка обчислює факторіал числа. Факторіал n (позначається n!) — це добуток всіх натуральних чисел від 1 до n.
Наприклад: 5! = 1 × 2 × 3 × 4 × 5 = 120
Завдання 3: Таблиця множення
Виведіть таблицю множення для числа, яке вводить користувач. Наприклад, якщо користувач ввів 7, виведіть:
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 ... 7 x 10 = 70
Завдання 4: Пошук простого числа
Напишіть програму, яка перевіряє, чи є введене число простим (ділиться тільки на 1 і на себе).
Підказка: Використайте цикл для перевірки ділення на числа від 2 до квадратного кореня з числа.