Ошибка бесконечного цикла
Разбираем, почему цикл while иногда не заканчивается и как это чинить.
Что такое бесконечный цикл
Цикл while повторяет действия, пока его условие истинно. Если условие никогда не становится ложным, цикл крутится вечно, и программа «зависает». Это не поломка компьютера, а логическая ошибка: вы забыли предусмотреть выход.
Самая частая причина
Обычно внутри цикла забывают менять переменную, от которой зависит условие. Например, счётчик должен расти до какого-то значения, но его увеличение написали вне цикла или не написали вовсе. Условие остаётся истинным всегда, и цикл не останавливается.
Как исправить
Проверьте, что внутри цикла есть шаг, который приближает условие к завершению: счётчик увеличивается, список сокращается, флаг меняется. Убедитесь, что этот шаг действительно выполняется на каждом повторе. Если программа уже зависла, её выполнение можно принудительно прервать и спокойно поискать ошибку.
Частые вопросы
Бывает ли бесконечный цикл нужен специально? Да, например в программах, которые ждут событий, — но там всегда есть предусмотренный выход по команде.
Как натренировать чувство циклов? На наглядных задачах с повторами. В игре Дрон Кодер цикл — это буквально «повтори шаг вперёд N раз», и сразу видно, сколько раз он сработал.
Начать игру бесплатно