Иллюстрированный самоучитель по Turbo Pascal

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

Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING, см. гл. 4).

Структура оператора выбора такова:

CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END

Здесь:

  • CASE, OF, ELSE, END – зарезервированные слова (случай, из, иначе, конец);
  • <ключ_выбора> – ключ выбора;
  • <список_выбора> – одна или более конструкций вида:
  • <константа_выбора>: <оператор>;
  • <константа_выбора> – константа того же типа, что и выражение<ключ_выбopa>;
  • <операторы> – произвольные операторы Турбо Паскаля.

Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.

Составим программу (пример 2.8), имитирующую работу микрокалькулятора. Программа вводит две строки: первая содержит два произвольных числа, разделенных пробелом, вторая – символ арифметического действия, например:

2 2
*

…или:

18.35 0.12
/

Над введенными числами осуществляется соответствующее действие и результат выводится на экран. Признаком конца работы программы служит ввод любого символа, отличного от +, -, *, /.

Пример 2.8.

Program Calc;
{Программа вводит два числа в первой строке и один из знаков +, -, *, / – во второй
и выводит на экран результат соответствующего арифметического действия}
var
operation: Char; {Знак операции}
х, у, z: Real; {Операнды и результат }
stop: Boolean; {Признак ошибочной операции и останова}
begin
stop: = false;
repeat
WriteLn; {Пустая строка-разделитель}
Write('x,y= ');
ReadLn(x,y);
Write('операция: ');
ReadLn(operation);
case operation of
' + ': z: = x + y;
' – ': z: = x – y;
' * ': z: = x * y;
' / ': z: = x / y;
else    
stop := true;
end;    
if not stop then
WriteLn('результат=',z)
until stop
end.

Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов: у или Y выведет на экран слово "Да", а при вводе n или N – слово "Нет":

var
ch: Char;
begin
ReadLn (ch);
case ch of
'n','N': WriteLn ('Нет');
'y','Y': WriteLn ('Да')
end
end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.