Условия
Оператор 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
. Компилятор будет рассчитывать правильное значение самостоятельно:
В данном примере компилятор запишет вместо 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, вложенные друг в друга.
Операторы сравнения
a
==
b - a равно ba
>=
b - a больше либо равно ba
>
b - a больше ba
<
b - a меньше ba
<=
b - a меньше либо равно ba
<>
b - a не равно b
a
и b
называются операндами. Компилятор может самостоятельно определить нужный опкод, если один из операндов является числовой константой, строковым литералом или тип обеих переменных известен.
Last updated