Ветвления: если-то-иначе-всё и выбор

Учим программу принимать решения: разбираем условный оператор «если» и множественный выбор.

Ветвление — конструкция, выбирающая, какие команды выполнить, в зависимости от условия. В КуМире это если … то … иначе … всё и выбор … при … всё.

Полная форма «если»

Полное ветвление выполняет одну ветку, если условие истинно, и другую — если ложно:

если <условие>
  то <команды, если да>
  иначе <команды, если нет>
всё

Пример с числом:

если a > 0
  то вывод "положительное", нс
  иначе вывод "ноль или отрицательное", нс
всё

Обратите внимание на слово всё в конце — оно обязательно и отмечает границу ветвления.

Неполная форма (без «иначе»)

Если во втором случае ничего делать не надо, ветку иначе опускают:

если справа свободно
  то вправо
всё

Робот шагнёт вправо, только если там свободно; иначе просто пойдёт дальше по программе.

Ветвление для Робота: обход угла

Пусть Робот идёт вправо вдоль стены и должен закрашивать только те клетки, под которыми есть стена (край «полки»):

использовать Робот
алг
нач
  если снизу стена
    то закрасить
  всё
  вправо
кон

Вложенные ветвления

Внутри ветки можно поставить ещё одно если. Каждое требует своего всё:

если a > 0
  то вывод "плюс", нс
  иначе
    если a = 0
      то вывод "ноль", нс
      иначе вывод "минус", нс
    всё
всё

Конструкция «выбор»

Когда вариантов много, вместо лесенки вложенных если удобнее выбор. Каждый случай начинается со слова при и условия:

выбор
  при a > 0: вывод "положительное", нс
  при a = 0: вывод "ноль", нс
  иначе вывод "отрицательное", нс
всё

КуМир проверяет условия сверху вниз и выполняет первый подходящий при. Ветка иначе срабатывает, если ни одно условие не подошло. Конструкция тоже закрывается словом всё.

Та же логика на Python

Классификация числа по знаку — запускаемый эквивалент конструкции «выбор»:

def klassif(a):
    if a > 0:
        return "положительное"
    elif a == 0:
        return "ноль"
    else:
        return "отрицательное"

for x in [7, 0, -3]:
    print(x, "->", klassif(x))

Вывод:

7 -> положительное
0 -> ноль
-3 -> отрицательное

Попробуй сам

Напишите ветвление для Робота: если слева свободно, шагнуть влево и закрасить; иначе закрасить текущую клетку. Не забудьте закрыть если словом всё.

Частые ошибки

  • Забыть всё — КуМир подчеркнёт ошибку, программа не запустится.
  • Поставить то на той же строке без условия или перепутать порядок если/то.
  • Во вложенных если не закрыть каждое своим всё.
  • В выбор забыть двоеточие после условия в при.

Итог

  • Ветвление: если … то … иначе … всё; ветку иначе можно опустить.
  • Каждое если обязательно закрывается словом всё.
  • Для многих вариантов — выбор … при условие: … иначе … всё.
  • Ветвления управляют и вычислениями, и движением Робота.
Проверьте себя
1. Какое слово обязательно завершает конструкцию «если» в КуМире?
Aкц
Bконец
Cвсё
Dиначе
2. Когда срабатывает ветка «иначе» в конструкции «выбор»?
AВсегда первой
BЕсли истинны все условия при
CЕсли не подошло ни одно условие при
DНикогда
3. Что делает неполное ветвление «если справа свободно то вправо всё»?
AВсегда идёт вправо
BИдёт вправо только если справа нет стены
CИдёт влево если справа стена
DЗакрашивает клетку
Поддержать проект