Операторы ветвления
Это единственная конструкция ветвления, доступная в калькуляторе "Школьная доска". Она является общепринятой:
блок
elseif(логическое_выражение)
блок
else
блок
endif
Ключевые слова if, elseif, else и endif ограничивают блоки формул, из которых выполняется только один. А именно, выполняется первый сверху блок, для которого логическое выражение является истинным. Если все логические выражения ложны, то выполняется блок else.
Блоков elseif может быть несколько, а может не быть вовсе. Блок else может быть только один или, вообще, отсутствовать.
Рассматриваемые конструкции ветвления могут быть вложенными друг в друга.
Пример. Игроки Борис и Аркадий играют в следующую игру. Каждый из них бросает игральную кость и добавляет к своим очкам выпавшее количество очков. Но, если набрано в точности 15, 30 или 45 очков, то все очки "сгорают". Игра идет до 50.
Б = 0
while(А<=50 And Б<=50)
А = А+random(5)+1
if(А = 15 Or А = 30 Or А = 45)
А = 0
endif
export(А)
Б = Б+random(5)+1
if(Б = 15 Or Б = 30 Or Б = 45)
Б = 0
endif
export(Б)
wend
Здесь роль игральной кости играет выражение random(5)+1, принимающее с равной вероятностью значения 1, 2, ..., 6. Ветвление использовано в самом простом виде: присутствуют только обязательные ключевые слова if и endif.
Усложним этот пример. Пусть, как и раньше, игрокам добавляется выпавшее при бросании игральной кости количество очков. Но, если какой-либо из игроков вырывается вперед, он получает бонус в одно очко. Если же у игроков оказывается равное количество очков, то они штрафуются на пять очков. Вот соответствующие этой игре формулы:
Б = 0
while(А<=50 And Б<=50)
А = А+random(5)+1
Б = Б+random(5)+1
if(А>Б)
А = А+1
elseif(А<Б)
Б = Б+1
else
А = А-5
Б = Б-5
endif
export(А)
export(Б)
wend