:: главная ::
 
:: учебник ::
 
:: download ::

Оператор варианта (выбора)

Этот оператор представляет собой обобщение условного оператора:

if <условие1> then <оператор1> else
if <условие2> then <оператор2> else
............
if <условиеN> then <операторN>

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

ВНИМАНИЕ!
Входить внутрь оператора варианта можно только через символ CASE – входить внутрь по какому-либо оператору перехода, находящемуся вне оператора варианта, запрещается.

CASE <ключ выбора> OF <список варианта>
ELSE <оператор> end;

где:
CASE - случай
<ключ выбора> - выражение любого типа кроме типов REAL и STRING
OF -из
<список варианта> - одна или более конструкций вида: < константа выбора>: <оператор>;
ELSE - иначе
<оператор> - произвольный оператор Турбо Паскаля
end; - конец

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

Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.

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

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

var
operation:char; {знак операции}
x,y,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 ('HET');
'y', 'Y' : writeln (ДА')
end;
end.



<-->
 
Hosted by uCoz