Операторы Case
Операторы case определяют выбор и выполнение последовательности операторов по значению выражения. Сначала вычисляется выбирающее выражение, а затем выполняется та последовательность операторов, чей список меток варианта содержит полученное значение. Выбирающее выражение должно быть такого целого типа, который поглощает типы всех меток вариантов, или и выбирающее выражение и метки вариантов должны иметь тип CHAR. Метки варианта - константы, и ни одно из их значений не должно употребляться больше одного раза. Если значение выражения не совпадает с меткой ни одного из вариантов, выбирается последовательность операторов после слова ELSE, если оно есть, иначе программа прерывается.
ОператорCase | = | CASE Выражение OF Вариант {" | " Вариант} [ELSE ПоследовательностьОператоров ] END. |
Вариант | = | [СписокМетокВарианта ":" ПоследовательностьОператоров]. |
СписокМетокВарианта | = | МеткиВарианта {"," МеткиВарианта }. |
МеткиВарианта | = | КонстантноеВыражение [".." КонстантноеВыражение]. |
Пример:
CASE ch OF
"A" .. "Z": ReadIdentifier
| "0" .. "9": ReadNumber
| "'", '"' : ReadString
ELSE SpecialCharacter
END