Перейти к основному содержимому

Циклы

Цикл повторяет измерение, решение и действие робота

Цикл нужен, когда одно действие нужно выполнить несколько раз. Например, вывести числа от 1 до 5, проверить несколько ячеек массива или повторять ввод до правильного значения.

Коротко

Цикл повторяет блок команд, пока условие разрешает продолжать. В начале лучше использовать счётчик: переменную, которая меняется после каждого шага.

Цикл while

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 удобно использовать, когда заранее известно количество повторений.

Блок-схема цикла 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. Выведите числа от 1 до 10 через while.
  2. Выведите числа от 0 до 9 через for.
  3. Создайте массив из пяти чисел и выведите его через for.
  4. Посчитайте сумму элементов массива.
  5. Найдите первое значение массива, равное 0, и остановите цикл через break.

Проверьте себя

  1. Чем while отличается от for?
  2. Что такое счётчик цикла?
  3. Что делает i++?
  4. Почему для массива размера 4 пишут i < 4?
  5. Что делает break?
  6. Что делает continue?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

ТерминЗначение
циклповторение блока команд
итерацияодин шаг цикла
счётчикпеременная, которая считает шаги
условие циклапроверка продолжения
breakдосрочный выход из цикла
continueпереход к следующему шагу

Связанные темы

Источники