Циклы: 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Бесконечно
Поддержать проект