Циклы

Цикл нужен, когда одно действие нужно выполнить несколько раз. Например, вывести числа от 1 до 5, проверить несколько ячеек массива или повторять ввод до правильного значения.
Цикл повторяет блок команд, пока условие разрешает продолжать. В начале лучше использовать счётчик: переменную, которая меняется после каждого шага.
Цикл while
while сначала проверяет условие, потом выполняет блок.
#include <iostream>
using namespace std;
int main() {
int i = 1;
while (i <= 5) {
cout << i << endl;
i = i + 1;
}
return 0;
}
Вывод:
1
2
3
4
5
Если забыть изменить i, цикл может стать бесконечным.
Цикл for
for удобно использовать, когда заранее известно количество повторений.
#include <iostream>
using namespace std;
int main() {
int i = 0;
for (i = 0; i < 5; i++) {
cout << i << endl;
}
return 0;
}
В скобках три части:
| Часть | Пример | Что делает |
|---|---|---|
| старт | i = 0 | задаёт первое значение счётчика |
| условие | i < 5 | решает, продолжать ли цикл |
| шаг | i++ | увеличивает счётчик после шага |
В этом разделе используем запись i++, а не ++i, чтобы не отвлекаться на тонкости формы.
Цикл по массиву
Теперь массивы можно обрабатывать коротко:
#include <iostream>
using namespace std;
int main() {
int a[4] = {10, 20, 30, 40};
int i = 0;
for (i = 0; i < 4; i++) {
cout << a[i] << endl;
}
return 0;
}
Условие i < 4 защищает от выхода за границу. Последний допустимый индекс здесь 3.
Сумма элементов массива
#include <iostream>
using namespace std;
int main() {
int a[4] = {10, 20, 30, 40};
int sum = 0;
int i = 0;
for (i = 0; i < 4; i++) {
sum = sum + a[i];
}
cout << sum << endl;
return 0;
}
Вывод:
100
Сначала sum равна нулю. На каждом шаге к ней добавляется очередной элемент.
break и continue
break досрочно завершает цикл.
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 10) {
if (i == 4) {
break;
}
cout << i << endl;
i = i + 1;
}
return 0;
}
continue пропускает остаток текущего шага и переходит к следующему. Для первого понимания проще смотреть его в while, где изменение счётчика видно отдельно:
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 5) {
i = i + 1;
if (i == 3) {
continue;
}
cout << i << endl;
}
return 0;
}
Частые ошибки
| Ошибка | Почему плохо |
|---|---|
забыли изменить счётчик в while | цикл не заканчивается |
написали i <= 4 для массива из 4 элементов | индекс 4 выходит за границу |
изменили счётчик внутри for без причины | сложнее понять количество шагов |
использовали continue до изменения счётчика в while | можно получить бесконечный цикл |
Практика
- Выведите числа от
1до10черезwhile. - Выведите числа от
0до9черезfor. - Создайте массив из пяти чисел и выведите его через
for. - Посчитайте сумму элементов массива.
- Найдите первое значение массива, равное
0, и остановите цикл черезbreak.
Проверьте себя
- Чем
whileотличается отfor? - Что такое счётчик цикла?
- Что делает
i++? - Почему для массива размера
4пишутi < 4? - Что делает
break? - Что делает
continue?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
| Термин | Значение |
|---|---|
| цикл | повторение блока команд |
| итерация | один шаг цикла |
| счётчик | переменная, которая считает шаги |
| условие цикла | проверка продолжения |
break | досрочный выход из цикла |
continue | переход к следующему шагу |
Связанные темы
- Массивы — данные для перебора.
- Конструкция ветвления — условия внутри цикла.
- Функции — повторяющийся код можно вынести в подпрограмму.
Источники
- C++ Working Draft. Iteration statements: https://eel.is/c++draft/stmt.iter
- Microsoft Learn. Iteration statements: https://learn.microsoft.com/en-us/cpp/cpp/iteration-statements-cpp