Если один оператор IF может обеспечить выбор из двух альтернатив, то оператор выбора CASE позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором (selection – выбор альтернативы), и списка параметров, каждому из которых предшествует список констант выбора:
case <выражение-селектор> of
<список1>: <оператор1>;
<список2>: <оператор2>;
:
else
<оператор>
end;
Оператор CASE работает следующим образом.
Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна текущему значению селектора, выполняется оператор, стоящий за словом ELSE. Если слово ELSE отсутствует, то активизируется оператор, находящийся за словом END, т.е. первый оператор за границей CASE.
Селектор должен относиться к одному из целочисленных типов (со значениями в диапазоне -32768..32767): булевскому, литерному или пользовательскому.
Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель «..». Тип констант в любом случае должен совпадать с типом селектора.
ПРИМЕРЫ:
Селектор интервального типа:
Селектор целочисленного типа:
Селектор перечисляемого пользовательского типа: