Синтаксис оператора if можно представить следующим образом:
┌──┐ ┌─────────┐ ┌────┐ ┌────────┐
оператор if ─>│if├──>│выражение├──>│then├──>│оператор├──┬──┐
└──┘ └─────────┘ └────┘ └────────┘ │ │
┌────────────────────────┘ │
│ ┌────┐ ┌────────┐ v
└──>│else├──>│оператор├─────────>
└────┘ └────────┘
В выражении должен получаться результат, имеющий стандартный
булевский тип. Если результатом выражения является истинное зна-
чение (True), то выполняется оператор, следующий за ключевым сло-
вом then.
Если результатом выражения является значение False и при-
сутствует ключевое слово else, то выполнятся оператор, следующий
за ключевым словом else. Если ключевое слово else отсутствует, то
никакой оператор не выполняется.
Синтаксическая неоднозначность, возникающая в конструкции:
if e1 then e2 else e3
разрешается путем следующей интерпретации этой конструкции:
if e1 then
begin
if e2 then
s1
else
s2
end
Примечание: В предшествующем операторе else двоеточие
не указывается.
В общем случае ключевое слово else связывается с ближайшим
ключевым словом if, которое еще не связано с ключевым словом
else.
Приведем два примера оператора if:
if X < 1.5 then
Z := X+Y
else
Z := 1.5;
if P1 <> nil then
P1 := P1^.father;