Оператор case
Оператор case предназначен для организации выбора из множества различных вариантов. В общем случае оператор case выглядит следующим образом:
case <выражение> of <список выбора> else <оператор> end;
Здесь case, of, else, end - ключевые слова (пер. с англ.: выбор, из, иначе, конец);
<выражение> - выражение любого порядкового типа;
<список выбора> - одна или более конструкций вида: <значение>: <оператор>;
<значение> - константа или константное выражение того же типа, что и <выражение>;
<оператор> - любой оператор Турбо-Паскаля, в том числе и составной.
Работа оператора начинается с вычисления <выражения>. Значение этого выражения является критерием для выбора из нескольких вариантов. Если полученное значение выражения совпадает с одной из констант, то выполняется тот оператор, которому предшествует эта константа. Если такой константы не обнаруживается, то выполняется оператор следующий за ключевым словом else. Ветвь else может отсутствовать, и в этом случае управление передается оператору следующему за оператором case.
Ниже приведены примеры, демонстрирующие работу оператора выбора.
program pr4;
var n:integer;
begin
writeln('Введите число');
read(n);
case n mod 2 of
1: writeln(n,'- нечетное');
0: writeln(n,'- четное');
end;
end.
Следующая программа по номеру месяца определяет время года.
program pr5;
var month: integer;
begin
writeln('Введите число - номеp месяца');
read(month);
case month of
12,1,2: writeln(month,' - зимний месяц');
3,4,5: writeln(month,' - весенний месяц');
6,7,8: writeln(month,' - летний месяц');
9,10,11: writeln(month,' - осенний месяц');
else writeln('Пpо это мне неизвестно!');
end;
end.
Составим программу, имитирующую работу простейшего калькулятора, выполняющего четыре арифметических действия.
program pr6;
var
op: char ;{Арифметическая операция}
x,y,z: real;{Операнды и результат}
begin
write('x,y=');
readln(x,y);
write('Введите аpифметическую опеpация:');
readln(op);
case op of
'*': begin z := x* y; writeln('z=',z);end;
'/': begin z := x/ y; writeln('z=',z);end;
'+': begin z := x+y; writeln('z=',z);end;
'-': begin z := x- y; writeln('z=',z);end;
else writeln('Увы! Это не аpифметическая опеpация.' );
end;
end.
Дата добавления: 2014-12-20; просмотров: 627;