Выше мы рассмотрели, что в команде (операторе) разветвления в зависимости от выполнения или невыполнение определенного условия выполняется первая или вторая серия (оператор 1 или оператор 2). Однако часто место двух возможностей существует несколько возможностей, т.е. процесс является многоразветвленным. Оператор выбора среди нескольких операторов организует множественное разветвление (путем выбора).
Оператор Case позволяет записать наглядно и просто алгоритмы с многими разветвлениями. Разветвление начинается с проверки условия некоторого выражения. Это выражение при выполнении оператора должно принимать определенное значение, которое выполняет роль метки для операторов в разветвлении. Если вычисленное значение выражения совпадает с некоторой указанной меткой, то выполняется оператор, помеченный этой меткой.
Блок-схема оператора CASE
Формат записи:
Сase <переменная или выражение> of
<список значений выбора1>:<оператор1>;
<список значений выбора2>:<оператор2>;
|
|
...................................
<список значений выбора N>:<оператор N>;
Еlse <оператор n+1>]
End;
Переменная может быть любого порядкового типа, кроме longint (word, boolean, integer, char… или перечисляемый тип).
Список значений выбора - это значения, которые могут принимать переменная или выражение, перечисленные через запятую или, если значения принадлежат какому-либо интервалу, с использованием лексемы " .. " (1..7 или 'а'..'м')
Оператор - любой оператор, в том числе составной.
Принцип работы оператора:
¨ Значение переменной или выражения сравнивается с предложенными списками значений;
¨ Если найдено нужное значение, выполняется соответствующий оператор;
¨ Если нужное значение не найдено в перечисленных списках, выполняется оператор после else;
¨ Если else отсутствует, то, когда нужное значение не найдено, выполняется следующий за case оператор.
Ветви здесь представлены элементами выбора, разграниченными точкой с запятой, а слово else с последующим оператором могут отсутствовать. Элемент выбора – это оператор, например составной, снабжённый одной или несколькими константами выбора:
Пример использования оператора: Написать программу, которая запрашивает номер месяца и выводит название времени года | Program M1; var month: integer; begin writeln (‘введите номер месяца от 1 – 12’); readln (month); case month of 1,2,12: writeln(‘зима’); 3,4,5: writeln(‘весна’); 6,7,8: writeln(‘лето’); 9,10,11: writeln(‘осень’); else writeln (‘ошибка ввода!’); end; end. |
Практические задания: