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