Оператор выбора CASE.
Позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора переменная целого или символьного типа, или выражение любого порядкового типа (кроме REAL и STRING).
Оператор |
Модуль |
Назначение |
Пример |
CASE |
SYSTEM |
Предназначен для выбора одного из нескольких возможных продолжений программы. Форма записи:
CASE <ключ_выбора> OF
<константа_выбора> : <оператор>
ELSE
<оператор>
END;
ключ_выбора ключ выбора (порядковый тип или CHAR);
константа_выбора константа того же типа, что и ключ_выбора;
оператор произвольные операторы. |
VAR
C:CHAR;
X,Y:INTEGER;
BEGIN
...
READLN(C);
CASE C OF
'+': X:=X+Y;
'–': X:=X–Y;
END;
...
END. |
Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <констант_выбора> отыскивается такая, которая соответствует <ключу_выбора>, и выполняется <оператор>, который находится за соответствующей <константой_выбора>. Если в списке не будет найдена надлежащая константа, управление передаётся операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке нужной константы ничего не произойдёт, и оператор выбора завершит свою работу.
Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделённых запятыми.
Пример программы.
Program Oper_Vybora;
Var
X, Y : Real;
C : Char;
BEGIN
Write('Введите два числа: ');
Readln(X,Y);
Write('Введите математическое действие: ');
Readln(C);
Case C Of
'+' : Begin
X:=X+Y;
Writeln('Складываю...');
End;
'-' : X:=X-Y;
'*' : X:=X*Y;
'/' : X:=X/Y;
End;
Writeln('Результат = ',X:12:4);
END.
Блоксхема программы.