Задания № 22, 23 · ЕГЭ

Бесконечный цикл

Почему алгоритм не заканчивается и как это проверить
2 мин чтенияСложность: Обновлено 29 сентября 2026

Бесконечный цикл — это выполнение команд, которое повторяется без остановки, потому что условие выхода никогда не становится истинным или выход из цикла недостижим. Чтобы обнаружить зацикливание, анализируют циклический алгоритм, его условие цикла и изменение переменных на каждой итерации.

Бесконечный цикл
Бесконечный цикл — цикл, число повторений которого не ограничено: программа или исполнитель продолжает выполнять одни и те же команды и не переходит к следующей части алгоритма. Зацикливание может быть намеренным, например в программе, постоянно обрабатывающей сигналы, но в учебных задачах обычно означает ошибку.

Почему цикл не завершается

Чаще всего причина связана с переменной, от которой зависит условие. Она может совсем не изменяться, изменяться в неправильную сторону или получать прежнее значение. Зацикливание также возникает, если условие всегда истинно, например \(x \ge 0\) при неизменном неотрицательном \(x\), либо если внутри цикла есть переход назад, делающий команды после него недостижимыми.

№
Пример

В цикле while x < 10 переменная \(x\) сначала равна 0, но внутри цикла не изменяется. Условие \(x < 10\) остаётся истинным при каждом повторении, поэтому цикл не остановится. Если добавить команду \(x := x + 1\), после десяти повторений условие станет ложным.

!
Не путайте

Бесконечный цикл — не то же самое, что просто длинный цикл. Длинный цикл завершится после конечного числа шагов, а при зацикливании конечное число повторений не установлено. Также остановка из-за ошибки программы не является нормальным завершением цикла.

Как обнаружить зацикливание

Проверьте, существует ли путь к команде выхода и меняется ли величина, влияющая на условие. Для числового счётчика удобно определить направление изменения: если условие требует \(x < b\), счётчик должен расти до \(b\); если требуется \(x > b\), он должен уменьшаться. В задачах об исполнителе полезно отслеживать его состояние: положение, значения переменных и истинность условия после каждой итерации.

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

Почему цикл while x != 5 может стать бесконечным, если после шага к \(x\) прибавляют 2, а начальное значение \(x=0\)?

Главное за минуту

Главное

  • Бесконечный цикл не достигает условия остановки и повторяет команды бесконечно.
  • Ищите неизменную или неправильно изменяемую переменную и проверяйте, достижимо ли значение выхода.
  • Длинный, но конечный цикл отличается от зацикливания тем, что всё-таки завершается.