С бесконечным циклом кот бегает бесконечно. А если нужно, чтобы кот прошел ровно 100 шагов и остановился? Или сделал ровно три прыжка, четыре кувырка, пять поворотов? В играх и анимациях часто требуется точное количество повторений: враг делает ровно два выстрела, персонаж подпрыгивает трижды, дверь открывается после пяти секунд ожидания.
Бесконечный цикл здесь не помощник. Действия будут повторяться вечно, кот никогда не остановится. Нужен другой инструмент — конечный цикл.
- Заменяем «повторять всегда» на «повторить 10 раз». Идем во вкладку «Управление». Рядом с бесконечным циклом лежит блок «повторить 10 раз». Он выглядит похоже, но с нижней стенкой и белым окошком для числа. Это цикл со счетчиком. Он выполнит команды внутри ровно столько раз, сколько написано в окошке, и передаст управление дальше.
- Удаляем старый блок «повторять всегда» и ставим на его место «повторить 10 раз». Оставляем внутри все остальное: смену костюма, шаги, отталкивание от края. Запускаем.
Кот проходит 100 шагов (10 повторений × 10 шагов = 100 шагов) и останавливается. Если он не успел коснуться края, он просто замирает. Программа закончена.
Давайте менять числа и смотреть, что получится:
- Поставим «повторить 20 раз». Кот пройдет 20 × 10 = 200 шагов. Он убежит дальше, возможно, несколько раз коснется края и оттолкнется.
- Оставим 10 повторений, но увеличим количество шагов до 20: «идти 20 шагов». Тогда путь станет 10 × 20 = 200 шагов. Результат тот же — 200 шагов, но теперь цикл длиннее.
- Поставим «повторить 5 раз» и «идти 15 шагов»? 5 × 15 = 75 шагов.
Мы можем управлять дальностью и скоростью, меняя два числа.
Цикл со счетчиком дает контроль. Мы точно знаем, сколько раз выполнится действие, и можем предсказать результат. Бесконечный цикл хорош для фоновых процессов, анимации, постоянного движения. Конечный — для точных, ограниченных задач: сделать ровно N шагов, нанести ровно N ударов, нарисовать ровно N линий.
Циклы придумали не только для бегающих котов. Одна из самых красивых задач — рисование фигур. Попробуем нарисовать квадрат. В школе нас учили: «Приложи линейку, начерти линию, поверни линейку…» — и так четыре раза. В Scratch это делается такой командой:
когда флажок нажатповторить 4 раза- идти 50 шагов
- повернуть на 90 градусов
Запустите. Пока мы просто двигаем спрайт. Но если опустить перо (вкладка «Перо»), кот начнет рисовать. Всего четыре повторения — и идеальный квадрат готов. Сторона 50 шагов, угол 90 градусов.
А если изменить число повторений и угол поворота? Поставить 3 повторения и 120 градусов — получится треугольник. Поставить 6 и 60 — шестиугольник. Можно даже нарисовать круг (если повторять цикл 360 раз по 1 шагу и 1 градусу).
Квадрат — классический пример того, как циклы помогают сократить код. Без цикла пришлось бы написать восемь строк. С циклом — всего три блока. Меньше кода — меньше ошибок. Программисты называют это DRY: Don't Repeat Yourself — «не повторяйся». Циклы — главный инструмент для борьбы с повторениями.
Конечный цикл «повторить N раз» не обязательно использовать с движением. Внутрь можно положить что угодно: смену костюмов, звуки, сообщения, вычисления. Например, чтобы сыграть мелодию, нужно положить блоки «играть ноту» внутрь циклов. Главное — правильно посчитать количество повторений.
Теперь вы знаете два вида циклов: бесконечный — вечное движение, конечный — точные задания. В следующей части урока Scratch мы познакомимся с третьим видом: циклом с условием.