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