IF
Условный оператор IF позволяет выполнить различные группы выражений в зависимости от выполнения одного или нескольких условий. Условия задаются в виде логического выражения.
Минимальный синтаксис:
IF (<логическое выражение 1>) THEN
<выражение 1>;
....
<выражение N>;
END_IF;
|
Полный синтаксис:
IF (<логическое выражение 1>) THEN
<выражение 1>;
....
<выражение N>;
ELSIF (<логическое выражение 2>) THEN
<выражение 1>;
....
<выражение N>;
....
ELSIF (<логическое выражение N>) THEN
<выражение 1>;
....
<выражение N>;
ELSE
<выражение 1>;
....
<выражение N>;
END_IF;
|
Блоки ELSIF и ELSE дополнительные. Блок ELSIF используется для проверки альтернативного условия и, в случае его истинности, позволяет выполнить отдельную группу операторов. Блок ELSE используется для выполнения группы выражений при отсутствии истинных условий.
Алгоритм выполнения:
-
Если логическое выражение 1 верно, выполняется группа выражений после первого ключевого слова THEN, прочие выражения пропускаются, альтернативные условия не проверяются.
-
Если логическое выражение 1 ложно, последовательно, одно за другим, проверяются логические выражения после ключевых слов ELSIF. Первое истинное условие приведет к выполнению соответствующей группы выражений после ключевого слова THEN, а прочие условия ELSIF не анализируются. Альтернативных условий ELSIF может быть несколько или не быть совсем.
-
Если все логические выражения ложны, выполняется группа операторов после ключевого слова ELSE. При его отсутствии ни одно выражение не выполняется, выполнение оператора завершается.
Пример:
IF (y > x) THEN
z := y - x; //выполняется, если первое условное выражение верно
ELSIF (x > y) THEN
z := x - y; //выполняется, если второе условное выражение верно
ELSE
z := x* y; //выполняется, если все условные выражения ложны
END_IF;
|
