Циклы в алгоритмах: повтори N раз и пока
Циклы со счётчиком и с условием: зарядка, грядка и таблица умножения. Тело цикла, счётчик и как не запустить вечный цикл, который подвесит программу.
Утренняя зарядка: десять приседаний. Никто не повторяет в голове «присел, встал» десять раз отдельными командами — звучит счёт «раз, два, три... десять», и тело делает одно и то же движение. Алгоритмы поступают точно так же: вместо копирования одинаковых команд их заключают в цикл и указывают, сколько раз или до каких пор его выполнять. Разберёмся с двумя главными видами циклов и с циклом-«вечным двигателем», который лучше не запускать.
Цикл со счётчиком: повтори N раз

Цикл — часть алгоритма, которая выполняется несколько раз подряд. Команды внутри цикла называют телом цикла: это то самое «приседание», которое повторяется. Когда число повторений известно заранее, используют цикл со счётчиком: «повтори 10 раз». Счётчик — невидимый помощник, который считает повторы: один, два, три — и на заданном числе говорит «хватит». В зарядке счётчиком ведёшь ты сам, в программах его считает машина.
- повтори 10 раз: подпрыгни и хлопни — зарядка;
- повтори 20 раз: вдох и выдох — дыхание перед бегом;
- повтори 4 раза: пройди вперёд и поверни направо — обход квадрата;
- повтори 12 раз: вырежи снежинку — украшения к празднику.
Циклы живут не только в технике. Припев песни — это цикл: куплет меняется, а припев повторяется после каждого из них. Зарядка, разминка на физкультуре, чистка картошки «чистим, пока не кончится» — всё это повторяющиеся тела циклов из твоей обычной жизни. Компьютер от человека отличается лишь тем, что не устаёт и не сбивается со счёта: он честно повторит тело хоть тысячу раз, если задать такое число.
Классический школьный пример — таблица умножения. Чтобы получить столбик на 7, не нужно писать семь разных команд: тело цикла одно — «умножь 7 на текущее число и запиши результат», а счётчик пробегает значения от 1 до 10. Первый повтор: 7 на 1 — записали 7. Второй: 7 на 2 — записали 14. На десятом повторе столбик готов. Поменяешь число в теле с 7 на 8 — тем же циклом получишь следующий столбик. Одна команда заменила нам десять строк.
Цикл «повтори 12 раз», а в теле цикла — 3 команды. Сколько всего команд выполнит исполнитель?
Следи, что именно меняется от повтора к повтору. В зарядке — номер упражнения, в таблице умножения — множитель. Если в теле цикла ничего не меняется, повторы становятся бессмысленными: десять раз записать «7 умножить на 5 равно 35» — это не таблица, а фантик. Поэтому в теле почти всегда есть команда, которая опирается на счётчик: нарисуй круг номер один, шагни на метр вперёд, умножь на текущее число.
Цикл с условием: пока
А если число повторов заранее неизвестно? Копая грядку, ты не знаешь, сколько движений лопатой понадобится, — знаешь лишь, когда закончишь: когда грядка вскопана. Для таких задач есть цикл с условием, он же «пока»: пока условие верно — повторяй тело. Условие проверяется перед каждым повтором: верно — выполняй тело и проверяй снова; неверно — цикл закончился, идём дальше. Грядка, книга, которую читаешь, «пока не станет скучно», и игра «пока не выпадет шестёрка» — всё это циклы «пока».
У цикла «пока» есть особенность, которой нет у счётчика: если условие ложно с самого начала, тело не выполнится ни разу. Пример: цикл «пока в корзине есть яблоки — перекладывай по одному» и пустая корзина на старте. Проверка сразу даёт «нет» — и алгоритм перепрыгивает через цикл, ничего не сделав. Это не ошибка, а полезное свойство: оно защищает от действий, для которых просто нет материала.
Тело цикла не обязано быть одной командой — внутрь можно положить сколько угодно действий и даже ветвление. Робот-газонокосильщик в теле цикла проверяет: «впереди клумба?». Да — поверни, нет — коси дальше. Получается конструктор: цикл отвечает за «сколько раз», ветвление — за «что именно делать на этом шаге». В настоящих программах эти две структуры переплетены постоянно, и, прочитав их, ты прочитаешь почти любой алгоритм.
- Ставим счётчик: вскопано 0 метров из 6.
- Проверка условия: вскопано меньше 6 метров? Да — работаем дальше.
- Тело цикла: вскопай следующий метр (вскопано стало 1 метр).
- Снова проверка: 1 меньше 6 — да. Копаем второй метр, третий...
- Шестой метр вскопан: условие «меньше 6» стало ложным — цикл завершился.
- Итог: тело выполнилось 6 раз, грядка готова, алгоритм перешёл к следующему шагу.
Как выбрать вид цикла для своей задачи? Знаешь точное число повторов — бери счётчик: зарядка на десять упражнений, десять строк таблицы. Не знаешь и узнаешь только по ходу — бери «пока»: копать до конца грядки, читать до конца главы, искать второй носок до первой найденной пары. Ошибка выбора тоже возможна: «повтори 100 раз» на короткой грядке прокопает огород соседа.
| Вид цикла | Когда брать | Пример |
|---|---|---|
| Со счётчиком | число повторов известно заранее | повтори 10 раз: подпрыгни |
| С условием («пока») | повторяем, пока не выполнится цель | пока грядка не вскопана — копай |
| Оба вида | можно решить любым, если постараться | обвести клетку 4 раза или пока линия не замкнётся |
Циклы можно вкладывать друг в друга. Зарядка на уроке физкультуры: «повтори 10 раз» — упражнения, а внутри каждого упражнения ещё один цикл: «повтори 8 раз» — приседания. В таблице умножения внешний цикл перебирает множители от 1 до 10, а внутренний печатает строку столбика. Считаем повторы: десять внешних кругов по десять внутренних — тело внутреннего цикла выполнится сто раз. Вложенные циклы — мощный инструмент, но именно в них чаще всего путаются со счётчиками.
Бесконечный цикл: вечный двигатель, который реально случается
Если условие «пока» никогда не становится ложным, цикл не заканчивается никогда — это бесконечный цикл. Классическая ошибка новичка: цикл «пока грядка не вскопана — хлопай в ладоши». Ладони устанут раньше, чем грядка, потому что в теле нет ни одной команды, приближающей конец. Условие смотрит на грядку, а тело грядку не трогает — замкнутый круг. Программа в такой момент «зависает»: экран замирает, кнопки не работают, приходится перезапускать.
Лекарство простое: в теле цикла должно меняться то, на что смотрит условие. Копаем — значит в теле где-то «вскопай кусочек». Считаем — значит «прибавь один к счётчику». Проверь себя вопросом: «что именно приближает конец цикла?» Если ответить нечего — почти наверняка получится бесконечный цикл. Второй вопрос-контроль: «может ли условие стать ложным вообще?» Условие «пока на небе звёзды» лучше сразу переписать.
Цикл со счётчиком повторяют заранее известное число раз, а цикл «пока» — пока условие . Команды внутри цикла называют . Чтобы цикл не стал бесконечным, в его теле должно то, что проверяет условие.
Банк слов
В каждой компьютерной игре работает один большой цикл «пока игра запущена»: проверь клавиши, пересчитай позицию героя, нарисуй кадр — и заново, десятки раз в секунду. Это осознанный бесконечный цикл: он обязан идти, пока ты играешь. Выходишь из игры — условие становится ложным, и цикл аккуратно завершается. Так что «бесконечный» бывает полезным, если у него продумано условие выхода.
«Повтори N раз» — любимая команда исполнителей-роботов на уроках: черепашка рисует квадрат четырьмя повторами «шагни и поверни на 90 градусов», а снежинка получается из шести повторов луча. Обрати внимание на связку цикла и геометрии: угол поворота в теле цикла не меняется, меняется только позиция. Попробуй повторить это на клетчатом листе: четыре команды вместо целого абзаца описания. Так цикл экономит и бумагу, и память компьютера.
Словарь урока
- Цикл#
- часть алгоритма, выполняемая несколько раз подряд
- Тело цикла#
- команды, которые повторяются
- Счётчик#
- число, которое считает повторы цикла
- Цикл со счётчиком#
- «повтори N раз» — для известного числа повторов
- Цикл с условием#
- «пока условие верно — повторяй»
- Бесконечный цикл#
- цикл, чьё условие никогда не станет ложным
Дальше по программе: повторяющиеся действия удобно изображать не словами, а схемами со связями между объектами. Следующий урок — про графы: как компактно нарисовать карту метро, родословную и даже папки компьютера.
Проверь себя
Клавиши 1–9 выбирают вариант, Enter — «Проверить»
1 Число повторений известно заранее. Какой цикл выбрать?
2 Что относится к телу цикла в команде «повтори 10 раз: подпрыгни и хлопни»?
3 Сколько раз выполнится тело цикла «повтори 12 раз»? Запиши число.
4 Если условие цикла «пока» ложно с самого начала, тело не выполнится ни разу.
5 Собери цикл «пока» для копания грядки.
6 Соедини вид цикла и его пример.
Нажми на элемент слева, затем на его пару справа. Повторное нажатие отменяет связь.
7 Дополни правила про циклы.
Выбери подходящее слово в каждом пропуске.
Цикл «пока» повторяется, пока условие . Команды внутри цикла называют . Если условие никогда не станет ложным, цикл получится .
Было понятно? Скажи — так мы видим, какие темы переписать.
Частые вопросы
Как выбрать между циклом со счётчиком и циклом «пока»?
Если число повторений известно заранее, бери счётчик: «повтори 10 раз». Если конец определяется условием — бери «пока»: копать, пока грядка не вскопана.
Почему цикл «пока» может выполниться ноль раз?
Условие проверяется перед каждым повтором, включая первый. Если оно сразу ложно — например, корзина с яблоками пуста — тело пропускается целиком.
Как понять, что цикл бесконечный?
Посмотри, меняет ли тело то, на что смотрит условие. Если в теле нет ни одной команды, приближающей конец, условие никогда не станет ложным и цикл не закончится.
Что такое тело цикла?
Это команды, которые повторяются: в зарядке — приседание, в таблице умножения — «умножь и запиши». Всё, что не входит в тело, выполняется один раз до или после цикла.