Циклы: for, while и do-while в C++
Циклы в C++: for, while, do-while, операторы break и continue — как повторять блоки кода без дублирования.
Цикл — это конструкция, которая выполняет блок кода несколько раз. Без циклов пришлось бы писать одни и те же строки сотни раз.
Цикл for
Используйте for, когда заранее знаете количество итераций. Состоит из трёх частей: инициализация; условие; шаг.
#include <iostream>
int main() {
// i начинается с 0, пока i < 5, увеличиваем на 1
for (int i = 0; i < 5; i++) {
std::cout << "Итерация " << i << "\n";
}
return 0;
}
Вывод:
Итерация 0 Итерация 1 Итерация 2 Итерация 3 Итерация 4
Цикл while
Используйте while, когда не знаете заранее, сколько итераций нужно — проверяете условие перед каждым шагом.
#include <iostream>
int main() {
int n = 1;
while (n <= 32) {
std::cout << n << " ";
n *= 2; // удваиваем
}
std::cout << "\n";
return 0;
}
Вывод:
1 2 4 8 16 32
Цикл do-while
Тело выполняется хотя бы один раз, даже если условие сразу ложно — проверка идёт после итерации.
#include <iostream>
int main() {
int x = 10;
do {
std::cout << "x = " << x << "\n";
x++;
} while (x < 5); // условие ложно сразу, но тело выполнилось один раз
return 0;
}
Вывод:
x = 10
break и continue
break немедленно завершает цикл, continue пропускает текущую итерацию и переходит к следующей.
#include <iostream>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 3) continue; // пропускаем тройку
if (i == 7) break; // останавливаемся на семёрке
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
Вывод:
0 1 2 4 5 6
Вложенные циклы
#include <iostream>
int main() {
// Таблица умножения 3x3
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
std::cout << i * j << "\t";
}
std::cout << "\n";
}
return 0;
}
Вывод:
1 2 3 2 4 6 3 6 9
Коротко
for— когда знаешь количество итераций;while— когда не знаешь.do-while— тело выполняется хотя бы раз, условие проверяется после.break— выход из цикла;continue— пропуск текущей итерации.- Вложенные циклы — это цикл внутри цикла; сложность растёт быстро.
Проверьте себя
1. В чём разница между while и do-while?
AНет разницы
Bdo-while выполняет тело хотя бы один раз
Cwhile быстрее
Ddo-while — это бесконечный цикл
2. Что делает оператор continue?
AЗавершает цикл
BПропускает текущую итерацию и переходит к следующей
CПерезапускает цикл с начала
DВыходит из функции
3. Сколько раз выполнится: for (int i = 0; i < 5; i++)?
A4
B5
C6
DБесконечно