13.2.3 Оператор If..then..else

На верх  Назад  Вперёд

Синтаксический шаблон If..then..else..


Оператор if then

1313


Выражение между ключевыми словами if и then должно иметь результат типа Boolean. Если выражение имеет значение True, то выполняется оператор (простой или составной) следующий за ключевым словом then.

Если выражение имеет значение False, то тогда выполняется оператор (простой или составной) после ключевого слова else, если он присутствует.

Некоторые моменты, нужно учесть:

Помните о том, что логическое выражение по умолчанию будет вычислено по схеме короткого замыкания, это значит, что вычисление будет остановлен в точке, где результат уже определён.

Кроме того, перед ключевым словом else, точка с запятой (;) не допускается, но все операторы могут быть вложенными операторами. Во вложенной конструкции if..then..else, может возникнуть некоторая двусмысленность, какое else с каким if в паре.

Правило гласит, что ключевое слово else соответствует первому же ключевым словом if (в обратном порядке), уже не соответствует ключевому слову else.

Например:

If exp1 Then

If exp2 then

  Stat1

else

stat2;

Несмотря на внешний вид, этот код синтаксически эквивалентен

If exp1 Then

  begin

    If exp2 then

      Stat1

    else

      stat2

  end;

а не

{ НЕ ЭКВИВАЛЕНТНО }

If exp1 Then

  begin

    If exp2 then

      Stat1

  end

else

  stat2;

Если необходима последняя конструкция, то должны присутствовать ключевые слова begin и end. Если сомневаетесь, их лучше добавить.

Следующий оператор допустим:

If Today in [Monday..Friday] then

    WriteLn ('Должно быть работать тяжелее')

else

    WriteLn ('Возьмите выходной день.');