Оператор выбора CASE Назад В начало Вперед

Оператор выбора case позволяет выбрать ветвь программы из нескольких альтернатив в зависимости от результата вычисления выражения. Количество альтернатив не более 16000.

<оператор-выбора> = case ( <выражение> ) of
  { <альтернатива>; }
  [ else <оператор-программы> ]
  end;

<выражение> - вычисляемое значение переключателя между альтернативами. Выражение располагается между ключевыми словами case и of. Результат вычисления выражения может быть любого типа.

<альтернатива> - альтернативные ветви программы. Список альтернатив следует за ключевым словом of. Альтернативы разделяются точкой с запятой.

Каждая альтернатива состоит из списка констант выбора и оператора программы. Константы и оператор разделяются двоеточием.

<альтернатива> =
  <список-констант-выбора> : <оператор-программы>;

<список-констант-выбора> - произвольная комбинация фиксированных значений и фиксированных диапазонов, отделенных друг от друга запятой:

<список-констант-выбора> =
  (<значение> | <диапазон>) {, <значение> | <диапазон>};

<значение> - константа

<диапазон> - две константы, разделенные двумя точками:

<диапазон> = <значение>..<значение>

<оператор-программы> - оператор или операторный блок.

Ключевое слово else определяет оператор, который будет выполнен, если не была выбрана ни одна из альтернатив. Ветвь оператора выбора, следующая за словом else, может отсутствовать.

Оператор выбора вычисляет выражение и выполняет тот оператор, константа выбора которого совпадает с полученным значением выражения. Если ни одна из констант выбора не равна текущему значению выражения или выражение не может быть вычислено, то выполняется оператор, расположенный за ключевым словом else. Если ветвь else отсутствует, то выполняется первый оператор за границей case, т.е. оператор, следующий за словом end.

Пример

case a of
 1: Message('a=1'); 
 2..3: Message('a=2 или 3');
 else Message('a не равно 1,2,3');
end;