Язык:
Русский
English
case (зарезервированное слово)
Оператор case состоит из выражения (селектора) и списка операторов, каждый из которых выполнится в определённом случае.
Зарезервированное слово case также применяется при описании записей с дискриминантом.
Синтаксис
case выражение of
вариант : оператор;
...
вариант : оператор;
end
или
case выражение of
вариант : оператор;
...
вариант : оператор;
else оператор
end
Замечания
"вариант" состоит из одной или большего количества констант или диапазонов, разделённых запятыми.
Часть «else» является необязательной.
Пример
case Ch of
'A' .. 'Z', 'a' .. 'z' : WriteLn('Буква');
'0' .. '9' : WriteLn('Цифра');
'+', '-', '*', '/' : WriteLn('Оператор');
else WriteLn('Специальный символ')
end;
Ада
case Ch is
when 'A' .. 'Z' | 'a' .. 'z' => Put_Line ("Буква");
when '0' .. '9' => Put_Line ("Цифра");
when '+' | '-' | '*' | '/' => Put_Line ("Оператор");
when others => Put_Line ("Специальный символ");
end case;
В языке Ада требуется, чтобы был предусмотрен каждый случай. Для этого нужно либо явно расписать действия для всего диапазона значений переключателя, либо указать действие по умолчанию. Если по умолчанию ничего делать не надо, это должно быть указано явно:
when others => null;
Как вариант, если не ожидается никаких значений помимо предусмотренных, можно выбрасывать исключение:
when others => raise Constraint_Error with "Непредусмотренное значение Ch";