Условный оператор предназначен для изменения порядка выполнения операторов при выполнении логического условия.
Синтаксис условного оператора имеет следующий вид:
IF <условие> THEN <оператор1> [ELSE <оператор2 >];
Если условие истинно, то выполняется <оператор1>.
Если условие ложно, то выполняется <оператор2>.
Если не задана конструкция “ELSE”, то при ложном условии выполняется переход к следующему оператору.
Логические условия подразделяются на простые условия и сложные условия.
Простое условие представляет собой два выражения, между которыми помещается знак сравнения. Например: Price*Quant>=Max.
Сложное условие представляет собой последовательность простых условий, которые соединены между собой знаками логических операций And, OR, NOT. Простые условия, используемые при формировании сложного логического условия, обязательно выделяются скобками.
Пример:
If ((Day >= 22) And (Month = 12)) Or
((Day <= 20) And (Month = 1)) Then
ZnakZ:=’Козерог’;
В том случае, когда в зависимости от условия требуется выполнить несколько операторов, то они объединяются с помощью операторных скобок ‘Begin’ и ‘End’ в составной оператор.
Пример:
If A = 0 Then
Begin
X:= 4; Y:= X + 2;
Z:= X / Y;
End;
Управление ветвлениями с помощью оператора Case.
В том случае, если необходимо разветвление на значительное число ветвей алгоритма, то целесообразно использовать оператор "Case". Синтаксис оператора
Case <селекторное выражение> Of
<значение 1>: <оператор 1>;
<значение 2>: <оператор 2>;
...
<значение N>: <оператор N>;
[ Else <оператор>;]
End;
В простейшем случае, селекторное выражение, представляет собой переменную, объявленную с типом Integer. При выполнении команды "Case" поочередно просматриваются все заданные значения. Если значение переменной совпадает с заданным значением, то выполняется заданная команда. Все заданные значения должны быть уникальны.
Конструкция "Else" определяет команду, которую необходимо выполнить, если заданные значения не совпадают с имеющимся значением селекторного выражения.
Ветви оператора "Case" могут содержать команду "Case".
Пример. Ввести числовое значение дня недели и выдать на экран его символьное обозначение.
Program PrjCase;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Var
A:Integer;
S:String;
Begin
Writeln ('Input number');
Readln (A);
Case A Of
1: S:='Monday';
2: S:='Tuesday';
3: S:='Wednesday';
4: S:='Thursday';
5: S:='Friday';
6: S:='Saturday';
7: S:='Sunday';
Else S:='Mistake number';
End;
Writeln (S);
Readln;
End.