Оператор выбора
Назначение
Оператор выбора предназначен для организации множественных ветвлений. Функционально его можно заменить условным оператором с соответствующим количеством условий ELSEIF, но он имеет более простую и наглядную конструкцию.
Синтаксис
CASE < выражение > WHEN < литерал1 [, литерал]... [, литерал] > THEN < операторы 1 > WHEN < литерал2 [, литерал]... [, литерал] > THEN < операторы 2 > ............. [WHEN OTHERS THEN < операторы > ] ENDCASE
Описание
Тип литералов и тип CASE-выражения должны быть совместимы.
Значение CASE-выражения последовательно сравнивается с литералами в операторах WHEN. При первом совпадении значения CASE-выражения с литералом одного из WHEN-оператора выполняются операторы, соответствующие этому условию (т.е. до следующего WHEN-оператора или до ENDCASE), после чего выполнение оператора выбора завершается. Если значение CASE-выражения не было найдено среди списка литералов, выполняется ветвь WHEN OTHERS. Если она отсутствует, управление передается сразу на следующий оператор после ENDCASE.
Пример оператора выбора
case rel_name when "$$$SYSRL", "$$$ATTRI", "$$$USR" then definit := "System dictionary table"; when "$$$PROC", "$$$PRCD" then definit := "System stored procedures table"; when others then definit := "Unknown table class"; endcase;