Здесь kv – ключ выбора или выражение для вычисления значения ключа.
Примечание. Тип ключа выбора – любой порядковый тип (целый, символьный, логический, перечислимый).
Знач1, Знач2,…, Значk – значения, которые может принимать ключ kv (константы того же типа, что и ключ kv).
Работа оператора Case состоит в следующем: значение ключа kv последовательно сравнивается с каждой из констант и при их равенстве выполняется соответствующий этой константе оператор. После выполнения выбранного оператора действие Case завершается. Если значение kv не равно ни одной из перечисленных констант, то выполняется оператор, записанный после ELSE. В частности, раздел ELSE может быть опущен и в этом случае оператор выбора эквивалентен пустому оператору.
Пример1. По заданному номеру месяца программа выдает число дней в месяце.
Program long_m;
Var n_m:byte;
Begin
write(‘Введи номер месяца:’);readln(n_m);
Case n_m of {ключ n_m – целое число без знака, которое согласно типу byte может принимать значения из диапазона (0,255)}
1,3,5,7,8,10,12: writeln(‘В этом месяце 31 день’);
4,6,9,11: writeln(‘В этом месяце 30 дней’);
2: begin
writeln(‘в феврале невисокосного года 28 дней, ’);
writeln(‘ а в феврале високосного года 29 дней’)
end
else writeln(‘номер месяца задан неверно’)
end{Case};
writeln(‘Для завершения работы нажми enter’);readln
end.
Пример 2. Для заданного значения температуры по Цельсию определяется температура по шкале Фаренгейта, Кельвина или Ренкина.
Program Scale_T;
Var tc:real;
S:char;
Begin writeln(‘Соответствие между температурными шкалами ’);
Writeln(‘Цельсия, Фаренгейта, Кельвина и Ренкина: ’);
Write(‘Задайте значение температуры по Цельсию Tc= ’);
Readln(tc);
If tc >= -273 then
Begin
Writeln(‘Температура по какой шкале Вас интересует? – ‘);