Бесконечный цикл
Запустите программу в редакторе. Собака поворачивается и… просто стоит. Программа при этом продолжает работать, и через некоторое время редактор останавливает её, сообщив, что она работала слишком долго.
Вот что произошло: цикл Повторять, пока не дойдёшь до цели пуст. Перед каждым проходом собака проверяет, не у цели ли она. Нет, поэтому она выполняет блоки цикла, а их там нет. И снова проверяет, у цели ли она. Всё ещё нет, ведь она не сдвинулась. И так снова и снова, бесконечно. Блок Иди вперёд, который должен был стоять в цикле, находится под ним, и программа до него никогда не доходит.
Такой цикл называется бесконечным, и это одна из самых частых ошибок в программах. Компьютер в нём «застревает»: не ломается и ничего не сообщает, а просто продолжает делать одно и то же. Поэтому редактор сам останавливает его через некоторое время.
Как избежать бесконечных циклов: про каждый цикл с условием спрашивайте себя, приближает ли каждый проход его к концу. Здесь каждый проход должен приближать собаку на один шаг к цели.
Задание
- 1
Исправьте программу так, чтобы собака дошла до цели на обеих картах.