Условные операторы

Условный оператор IF

Оператор выбора позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями.

Полный синтаксис оператора IF (if) выглядит так:

IF <Boolean expression IF>

THEN

   <expression IF>;

[

ELSIF <Boolean expression ELSEIF 1>

THEN

   < expression ELSEIF 1> ;

ELSIF <Boolean expression ELSEIF n>

THEN

   < expression ELSEIF n> ;

ELSE

   < expression ELSE> ;

]

END_IF

Если <Boolean expression IF> TRUE, то выполняются выражения первой группы — <expression IF> . Прочие выражения пропускаются, альтернативные условия не проверяются. Часть конструкции в квадратных скобках является необязательной и может отсутствовать. Если <Boolean expression IF> FALSE, то одно за другим проверяются условия ELSIF. Первое истинное условие приведет к выполнению соответствующей группы выражений. Прочие условия ELSIF анализироваться не будут. Групп ELSIF может быть несколько или не быть совсем. Если все логические выражения дали ложный результат, то выполняются выражения группы ELSE, если, она есть. Если группы ELSE нет, то не выполняется ничего.

В простейшем случае оператор IF содержит только одно условие:

IF bReset THEN

   iVarl := 1;

   iVar2 := 0;

END_IF

На первый взгляд конструкция IF с несколькими группами ELSIF выглядит сложной, но на самом деле оказывается достаточно выразительной:

IF bReset THEN

   iVarl := 1;

ELSIF byLeft < 16 THEN

   iVarl := 2;

ELSIF byLeft < 32 THEN

   iVarl := 3;

ELSIF byLeft < 64 THEN

   iVarl := 4;

ELSE

   bReset ;= TRUE;

END_IF

Оператор множественного выбора CASE

Оператор множественного выбора CASE позволяет выполнить различные группы выражений в зависимости от значения одной целочисленной переменной или выражения.

Синтаксис:

Syntax:

CASE <integer expression> OF

<value 1>:

   <expression 1>:

<value 2> , value 3> :

   <expression 3> ;

<value 4>..value 5> :

   <expression 4> ;

   ...

[

ELSE

   <expression ELSE>;

]

END CASE

Если значение выражения совпадает с заданной константой, то выполняется соответствующая группа выражений. Прочие условия не анализируются(<value 1>: <expression 1> ;).

Если несколько значений констант должны соответствовать одной группе выражений, их можно перечислить через запятую (<value 2> , <value 3> : <value 3> ;).

Диапазон значений можно определить через двоеточие (<value 4>..<value 5> : <expression 4> ;).

Группа выражений ELSE является необязательной. Она выполняется при несовпадении ни одного из условий (<expression ELSE> ;).

Пример:

CASE byLeft/2 OF

0,127:

   bReset := TRUE;

   Varl :=0;

16..24:

   Varl := 1;

ELSE

   Varl := 2;

END_CASE