Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Циклы while, do while и for

Страница 12 из 43 · 2026-10-25 · 2 мин чтения

Циклы while, do while и for

Цикл while

while проверяет условие перед каждой итерацией. Если оно изначально ложно, тело не выполнится ни разу.

int count = 0;while (count < 3) {    std::cout << count << '\n';    ++count;}

Важно изменять состояние, от которого зависит условие, иначе можно получить бесконечный цикл.

Цикл do while

do while проверяет условие после выполнения тела, поэтому тело запускается минимум один раз:

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

После while в конструкции do while обязательна точка с запятой.

Цикл for

for объединяет инициализацию, условие и шаг:

for (int i = 0; i < 5; ++i) {    std::cout << i << '\n';}

Переменная i, объявленная в заголовке цикла, доступна только внутри этого цикла.

break и continue

  • break завершает ближайший цикл.
  • continue пропускает остаток текущей итерации и переходит к следующей.
for (int i = 0; i < 10; ++i) {    if (i == 2) continue;    if (i == 7) break;    std::cout << i << ' ';}

Цикл по диапазону

Range-based for удобно использовать для элементов контейнера:

std::vector<int> values{2, 4, 6};for (int value : values) {    std::cout << value << '\n';}

Чтобы изменять элементы, используй ссылку: for (int& value : values). Для чтения крупных объектов обычно подходит const auto&.

Частые ошибки

  • Ошибка на единицу в границе (i <= size вместо i < size).
  • Лишняя точка с запятой после for или while.
  • Изменение счётчика не в ту сторону.
  • Изменение контейнера во время обхода без понимания последствий для итераторов.

Итог

while удобен, когда число повторений заранее неизвестно; for — когда есть счётчик или диапазон; do while — когда тело должно выполниться хотя бы раз.