Условия

Оператор IF объединяет одно или несколько условий и создает новое ветвление в коде.

Общий синтаксис условных выражений

00D6: if <N> <условие 1> <условие 2> ... <условие N+1> 004D: jump_if_false <метка>

N означает общее кол-во условий внутри выражения IF и логическую связь между ними:

N

Кол-во условий

Логический оператор

0

1

нет (выражение истинно, если условие в нем истинно)

1..7

2..8

И (все условия должны быть истинны, чтобы все выражение было истинно)

21..27

2..8

ИЛИ (хотя бы одно условие должен быть истинно, чтобы все выражение было истинно)

В одном выражении IF может объединяться до 8 условий.

Sanny Builder позволяет не указывать0 после IF. IF 0 и IF эквивалентны.

<метка>- имя метки, на которую переходит скрипт, если выражение IF ложно. <условие> - любой условный опкод, который возвращает true или false

Если опция Проверка условий включена, после IF можно писать ключевые слова AND или OR. Компилятор будет рассчитывать правильное значение самостоятельно:

if and 
    $var > 0
    $var2 == 10.0
jf @anywhere

В данном примере компилятор запишет вместо and число 1.

IF AND - условия, объединенные логическим оператором И (замена if 1..7) IF OR - условия, объединенные логическим оператором ИЛИ (замена if 21..27)

Высокоуровневые конструкции

Для облегчения работы с условными выражениями существуют высокоуровневые конструкции, для которых не нужны дополнительные метки в коде:

IF <N>/AND/OR <условие 1> <условие 2> ... <условие N+1> THEN <команды при истинности условия> END

IF <N>/AND/OR <условие 1> <условие 2> ... <условие N+1> THEN <команды при истинности условия> ELSE <команды при ложности условия> END

Условное выражение создается по общим правилам. После ключевого слова THEN указываются опкоды, которые должны выполняться, если условие истинно. После ELSE указываются опкоды, которые выполняются, если условие ложно.

Выражение IF завершается ключевым словом END.

if $var == 5
then
    Inc($var)
else
    Dec($var)
end

Опция Проверка условий должна быть включена.

Допускаются конструкции IF, вложенные друг в друга.

Операторы сравнения

  • a == b - a равно b

  • a>= b - a больше либо равно b

  • a > b - a больше b

  • a < b - a меньше b

  • a <= b - a меньше либо равно b

  • a <> b - a не равно b

a и b называются операндами. Компилятор может самостоятельно определить нужный опкод, если один из операндов является числовой константой, строковым литералом или тип обеих переменных известен.

Last updated