С циклами мы уже встречались в ранних уроках, а ветвления будут для тебя новым понятием.
Наверняка ты уже слышал слово "зациклился" или "зацикленный" и знаешь, что оно означает повторение одного и того же. Также и циклы в программировании - это повторения одних и тех же действий. Циклы бывают бесконечные, по числу повторений и по условию. На самом деле циклы по числу повторений - это тоже циклы по условию, но нам удобнее выделять их отдельно.
Бесконечные циклы, как следует из названия, повторяются всегда. Ну не совсем всегда, конечно, а пока работает программа. В Scratch для таких циклов есть блок "повторять всегда". Мы уже использовали его для прыгающего котика.
С циклом по числу повторений мы уже тоже встречались. Он повторяет свои действия заданное число раз.
С циклом по условию мы еще не встречались в программировании, но ты регулярно встречаешься с ним в жизни. Например, за обедом. Посмотри на картинку:
На ней изображен процесс обеда - ты набираешь ложку, отправляешь ей еду в рот и прожевываешь ее. Затем проверяешь есть ли еще что-то в тарелке. Если есть, то повторяешь. Если тарелка пустая - ты все съел и можешь идти гулять :)
Картинка выше называется блок-схема и в данном случае она описывает алгоритм обеда. Такие схемы очень часто используются в программировании для описания алгоритмов перед тем как делать программу. Это очень удобно - сначала рисуем схему, мысленно проверяем как она будет работать, а уже потом пишем программу. В программировании есть даже специальные люди - аналитики, которые заняты только придумыванием и рисованием таких схем.
В Scratch для циклов по условию применяется блок "повторять пока не". Он повторяет свои действия до тех пор пока условие НЕ выполняется. Если условие выполнилось - такой цикл завершается
Я уже не один раз говорил "действия цикла" имея в виду блоки, которые расположены внутри блока цикла. Правильно такие блоки называются "тело цикла". "Тело" может быть не только у цикла, а еще и у ветвления, а также собственного блока. Про собственные блоки мы поговорим в следующих уроках, а сейчас время ветвлений.
В жизни действия бывают зависят от каких-нибудь условий. Например, нам нужно рассортировать кубики: красные налево, а зеленые направо. Вместо одного действия, мы делаем либо одно, либо другое, в зависимости от цвета кубика. Как будто разветвляемся - направо и налево.
В программировании это называется "ветвления". Программа как будто разветвляется по двум направлениям - выполнилось условие (цвет красный) или нет. Для работы с условиями платформа предлагает нам блоки "если ... то" и "если ..., то ... иначе".
Второй блок нужен, если мы хотим обработать оба пути - и правый, и левый. Кроме этого платформа дает нам возможность остановить выполнение программы и подождать выполнения какого-нибудь условия. Например, когда другой персонаж закончит свои действия. Для этого служит блок "ждать до"
А где же брать сами условия? В скратче для этого есть разделы "сенсоры" и "операторы". На картинке ниже несколько примеров сенсоров и операторов:
Ну и наконец задание: нужно написать программу, чтобы котик прыгал до нажатия клавиши "стрелка вниз". Потом ждал до нажатия клавиши "стрелка вверх" и снова начинал прыгать после нажатия.
Подсказка: тебе потребуется использовать цикл в цикле или вложенный цикл. Догадался как? Вперед и не подглядывай в ответ.
Решение доступно на платформе Scratch и на картинке ниже:
Прошлые уроки