интерактивный урок
Циклы в C++
Пошаговое визуальное погружение в for, while и do...while
Зачем нужны циклы?
Цикл повторяет блок кода, пока условие истинно. В C++ есть три вида циклов — каждый для своих ситуаций.
Представьте, вам нужно вывести «Hello!» пять раз. Без циклов пришлось бы дублировать строку 5 раз.
А теперь представьте, что нужно 1000 раз. Или пока пользователь не скажет «стоп». Без механизма повторения это невозможно.
| Цикл | Идея |
|---|---|
| while - сначала проверь, потом делай | |
| for - повторение со счётчиком | |
| do...while - сначала делай, потом проверь |
Цикл while
Сначала проверяет условие. Повторяет, пока условие истинно. Может не выполниться ни разу.
Инициализируем переменную i = 1
Когда использовать while:
- Количество итераций заранее неизвестно
- Цикл может не выполниться ни разу
- Ожидание изменения условия
Варианты while:
① Обратный отсчёт — уменьшаем вместо увеличения:
Начинаем с n = 5
② Бесконечный цикл + break — когда условие выхода в середине тела:
while(true) создаёт бесконечный цикл. break выходит, когда пароль верный.
Цикл for
Идеален, когда известен диапазон или количество повторений. Объединяет инициализацию, условие и шаг в одну строку.
int i = 1 — инициализация; i <= 5 — условие; i++ — шаг
Вложенные циклы — один цикл внутри другого, для таблиц, матриц, паттернов:
Внешний цикл — строки, внутренний — столбцы. Получаем таблицу умножения.
Цикл do...while
Гарантирует хотя бы одно выполнение тела, потому что проверка условия — в конце.
Тело выполняется первым, и только потом проверяется условие. Если num <= 0, повторяем.
break и continue
break — немедленный выход из цикла. continue — пропустить текущую итерацию и перейти к следующей.
continue пропускает чётные, break останавливает после 7. Результат: 1 3 5 7
Сравнение циклов
| while | for | do...while | |
|---|---|---|---|
| Проверка - До тела | До тела | После тела | |
| Мин. итераций - "0" | 0 | 1 | |
| Лучше когда - Неизвестно сколько | Известно сколько | Хотя бы 1 раз | |
| Счётчик - Вручную | Встроен | Вручную |
Проверь себя
Какой цикл гарантирует хотя бы одну итерацию?
Что выведет: for (int i = 0; i < 3; i++) cout << i;