Инструкция выбора сase
Еще одним средством позволяющим строить разветвляющиеся алгоритмы является инструкция выбора сase.
Инструкция выбора сase должна предусматривать определенное действие для каждого возможного значения переменной селектора (переключателя). В случаях, когда невозможно перечислить все значения переменной селектора, нужно использовать метку others.
Каждое значение выбора может быть представлено как одиночное значение (например, 5), как диапазон значений (например, 1..20), или как комбинация, состоящая из одиночных значений и/или диапазонов значений, разделенных символом '|'.
Каждое значение выбора должно быть статическим значением, то есть оно должно быть определено компилятором во время компиляции программы.
case выражение is
when значение_выбора => действия when значение_выбора => действия . . . when others => действия end case; |
Важные примечания:
- "выражение", в инструкции case, должно быть дискретного типа
- метка others обязательна в инструкции сase
тогда, когда инструкции when не перечисляют всех возможных значений селектора.
case Letter is
when 'a'..'z'| 'A'..'Z' => Put ("letter"); when '0'..'9' => Put ("digit! Value is"); Put (letter); when ''' | '"' | '`' => Put ("quote mark"); when '&' => Put ("ampersand"); when others => Put ("something else"); end case; |
В некоторых случаях, в качестве действий, указываемых для метки others, может использоваться пустая инструкция null:
. . . when others => null; -- ничего не делать . . . |