IF
объединяет одно или несколько условий и создает новое ветвление в коде.00D6: if <N>
<условие 1>
<условие 2>
...
<условие N+1>
004D: jump_if_false <метка>
N
означает общее кол-во условий внутри выражения IF
и логическую связь между ними:И
(все условия должны быть истинны, чтобы все выражение было истинно)ИЛИ
(хотя бы одно условие должен быть истинно, чтобы все выражение было истинно)IF
может объединяться до 8 условий. 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
.==
b - a равно b >=
b - a больше либо равно b >
b - a больше b <
b - a меньше b <=
b - a меньше либо равно b <>
b - a не равно ba
и b
называются операндами. Компилятор может самостоятельно определить нужный опкод, если один из операндов является числовой константой, строковым литералом или тип обеих переменных известен.