Оператор условия (if)
Синтаксис оператора if можно представить следующим образом:
---¬ ----------¬ -----¬ ---------¬ оператор if ->¦if+-->¦выражение+-->¦then+-->¦оператор+--T--¬ L--- L---------- L----- L--------- ¦ ¦ -------------------------- ¦ ¦ -----¬ ---------¬ v L-->¦else+-->¦оператор+---------> L----- L---------
В выражении должен получаться результат, имеющий стандартный булевский тип. Если результатом выражения является истинное зна- чение (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;