Оператор выбора case
Оператор case позволяет сделать выбор между несколькими вариантами:
case <переключатель> of
<список_констант> : <один_оператор>;
[<список_констант> : <один_оператор>;]
[<список_констант> : <один_оператор>;]
[else <один_оператор>;]
end;
Замечание: Обратите внимание, что после else двоеточие не ставится.
Существуют дополнительные правила, относящиеся к структуре этого оператора:
Переключатель должен относиться только к порядковому типу данных, но не к типу longint.
Переключатель может быть переменной или выражением.
Список констант может задаваться как явным перечислением, так и интервалом или их объединением.
Повторение констант не допускается.
Тип переключателя и типы всех констант должны быть совместимыми1).
Пример оператора выбора:
case symbol(* :char *) of
'a'..'z', 'A..'Z' : writeln('Это латинская буква');
'а'..'я', 'А..'Я' : writeln('Это русская буква');
'0'..'9' : writeln('Это цифра');
' ',#10,#13,#26 : writeln('Это пробельный символ');
else writeln('Это служебный символ');
end;
Выполнение оператора case происходит следующим образом:
вычисляется значение переключателя;
полученный констант;
если такой список найден, то дальнейшие проверки уже не производятся, а выполняется оператор, соответствующий выбранной ветви, после чего управление передается оператору, следующему за ключевым словом end, которое закрывает всю конструкцию case.
если подходящего списка констант нет, то выполняется оператор, стоящий за ключевым словом else. Если else-ветви нет, то не выполняется ничего.
Достарыңызбен бөлісу: |