Оператор выбора позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения (селектора выбора).
Формат оператора выбора: case К of А1 : ; А2 : ; ….. Аn : Аn : else else end; Здесь К выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический).
Формат оператора выбора: case К of А1 : ; А2 : ; ….. Аn : Аn : else else end; А1,..., Аn -- константы того же типа, что и селектор, выполняющие роль меток ветвей
Формат оператора выбора: case К of А1 : ; А2 : ; ….. Аn : Аn : else else end; Исполнение оператора начинается с вычисления выражения К, полученное значение сравнивается с константами (метками) и выполняется соответствующий оператор. Если ни одна из меток не совпала со значением К, то выполняется оператор после слова else.
Формат оператора выбора: case К of А1 : ; А2 : ; ….. Аn : Аn : end; Возможно использование неполного оператора выбора без ветви else. Метки ветвей также могут быть заданы списком или интервалом.
Пример. В старояпонском календаре был принят двенадцати летний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая по номеру года определяет его название в старояпонском календаре, если известно, что 1996 г. был годом крысы -- началом очередного цикла.
Решение. Поскольку цикл является двенадцатилетним, поставим в со ответствие название года остатку от деления номера этого года на 12. При этом учтем, что остаток от деления 1996 на 12 равен 4.
Var Year: integer; Begin Write (введите год); Readln (Year); Case Year mod 12 of 0: writeln (год обезьяны); 1: writeln (год петуха); 2: writeln (год собаки); 3: writeln (год свиньи); 4: writeln (год крысы); 5: writeln (год коровы); 6: writeln (год тигра); 7: writeln (год зайца); 8: writeln (год дракона); 9: writeln (год змеи); 10: writeln (лошади); 11: writeln (овцы); end; readln; readln end.