Условный оператор
Оператор условия IF является одним из самых популярных средств, изменяющих естественный порядок выполнения операторов и реализует развилку в зависимости от заданного условия.Он может быть записан в полной форме
if <условие> then <оператор1> else <оператор2>;
или неполной форме
if <условие> then <оператор1>;
На месте операторов может стоять любой допустимый в языке оператор, в том числе условный или составной.
Полный условный оператор выполняется следующим образом: сначала вычисляется значение условия, если оно истинно (равно true), то выполняется оператор, относящийся к ветке then, если же условие ложно (false), то выполняется оператор, относящийся к ветке else.
Например, найти максимум из 2 чисел
if a > b then max := a else max := b;
Неполная форма if предполагает выполнение оператора (или операторов) только в случае выполнения условия. В случае, если условие ложно, управление передается на следующий оператор после оператора if.
Например, поменять местами значения переменных a и b, если a > b.
if a > b then begin temp := a; a := b; b := temp; end;
Если по ветке then (и / или по ветке else) необходимо выполнить более одного оператора, то необходимо всю последовательность команд заключить в операторные скобки begin … end.
if <условие> then
begin
<оператор>;
…
<оператор>;
end
else
begin
<оператор>;
…
<оператор>;
end;
Например, ...
Если в ветке then используется условный оператор, то допустима следующая конструкция:
if <условие1> then
if <условие2> then <оператор1>
else <оператор2>;
Следует соблюдать следующее правило: else всегда относится к ближайшему if. Это значит, что в приведенном примере первый оператор if записан в неполной форме, а второй оператор if - в полной. Если же по логике программы требуется, чтобы первый оператор был полным, а второй укороченным, то следует использовать операторные скобки:
if <условие1> then
begin
if <условие2> then <оператор1>
end
else <оператор2>;
ЗАПОМНИ! Перед else никогда не ставится знак ; (точка с запятой).
При сравнении значения логической переменой с константами true или false можно пользоваться сокращенной записью.
Запись оператор if a = true эквивалентна записи if a.
Аналогично, запись оператора if a = false соответствует оператору if not a.