Операторы выбора

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

selection-statement:

if-statement

switch-statement

Оператор If

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

if-statement:

If   boolean-expression   Then   block   elseif-clausesopt   else-clauseopt   End If

boolean-expression:

expression

elseif-clauses:

elseif-clause

elseif-clauses   elseif-clause

elseif-clause:

Elseif   boolean-expression   Then   block

else-clause:

Else   block

Оператор If выполняется следующим образом:

Пример

Sub TestIf();
Var
    a, b: Integer;
    c: Double;
Begin
    //...
    //Получение значений a, b, c
    //...
    If (a > b) And (b > c) Then
        c := a - b;
    Elseif (a < b) And (b < c) Then
        c := b - a;
    Else
        c := (a + b) / 2
    End If;
    //...
End Sub;

Оператор Select

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

switch-statement:

Select Case   expression   switch-sections   else-clauseopt   End Select

switch-sections:

switch-section

switch-sections   switch-section

switch-section:

Case   switch-labels   :   block

switch-labels:

switch-label

switch-labels   ,   switch-label

switch-label:

constant-expression

В заголовке оператора Select указывается выражение посредством вычисления которого будет определяться выполняемый блок операторов. Тип выражения в заголовке оператора называется определяющим типом. Константные выражения в списках меток должны иметь значения, которые могут быть неявно приведены к определяющему типу оператора. Если два или более значений меток имеют одинаковое значение возникает ошибка компиляции.

Оператор Select выполняется следующим образом:

Пример

Function TestSelect(a: integer): string;
Begin
    Select Case a
        Case 0Return "A=0";
        Case 1Return "A=1";
        Case 2Return "A=2";
        Else Return "A<>[0,2]";
    End Select;
End Function;

См.также:

Операторы