Оператор выбора 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.

Блок—схема программы.