интерактивный урок

Циклы в C++

Пошаговое визуальное погружение в for, while и do...while

Зачем нужны циклы?

Цикл повторяет блок кода, пока условие истинно. В C++ есть три вида циклов — каждый для своих ситуаций.

Представьте, вам нужно вывести «Hello!» пять раз. Без циклов пришлось бы дублировать строку 5 раз.

А теперь представьте, что нужно 1000 раз. Или пока пользователь не скажет «стоп». Без механизма повторения это невозможно.

ЦиклИдея
while - сначала проверь, потом делай
for - повторение со счётчиком
do...while - сначала делай, потом проверь

Цикл while

Сначала проверяет условие. Повторяет, пока условие истинно. Может не выполниться ни разу.

count.cpp шаг 1 из 7
int i = 1;
while (i <= 5) {
cout << i << " ";
i++;
}
cout << "Готово!";

Инициализируем переменную i = 1

Когда использовать while:

  • Количество итераций заранее неизвестно
  • Цикл может не выполниться ни разу
  • Ожидание изменения условия

Варианты while:

① Обратный отсчёт — уменьшаем вместо увеличения:

countdown.cpp шаг 1 из 3
int n = 5;
while (n > 0) {
cout << n << "... ";
n--;
}
cout << "Поехали!";

Начинаем с n = 5

② Бесконечный цикл + break — когда условие выхода в середине тела:

infinite_break.cpp
while (true) {
cout << "Введите пароль: ";
string pw;
cin >> pw;
if (pw == "secret") break;
cout << "Неверно!";
}

while(true) создаёт бесконечный цикл. break выходит, когда пароль верный.

Цикл for

Идеален, когда известен диапазон или количество повторений. Объединяет инициализацию, условие и шаг в одну строку.

for_basic.cpp шаг 1 из 3
for (int i = 1; i <= 5; i++) {
cout << i << " ";
}

int i = 1 — инициализация; i <= 5 — условие; i++ — шаг

Вложенные циклы — один цикл внутри другого, для таблиц, матриц, паттернов:

nested.cpp
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
cout << row * col << "\t";
}
cout << endl;
}

Внешний цикл — строки, внутренний — столбцы. Получаем таблицу умножения.

Цикл do...while

Гарантирует хотя бы одно выполнение тела, потому что проверка условия — в конце.

dowhile.cpp
int num;
do {
cout << "Введите положительное число: ";
cin >> num;
} while (num <= 0);

Тело выполняется первым, и только потом проверяется условие. Если num <= 0, повторяем.

break и continue

break — немедленный выход из цикла. continue — пропустить текущую итерацию и перейти к следующей.

break_continue.cpp
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
if (i > 7) break;
cout << i << " ";
}

continue пропускает чётные, break останавливает после 7. Результат: 1 3 5 7

Сравнение циклов

whilefordo...while
Проверка - До телаДо телаПосле тела
Мин. итераций - "0"01
Лучше когда - Неизвестно сколькоИзвестно сколькоХотя бы 1 раз
Счётчик - ВручнуюВстроенВручную

Проверь себя

Какой цикл гарантирует хотя бы одну итерацию?

Что выведет: for (int i = 0; i < 3; i++) cout << i;

© 2026 aqlacademy.kz