Ключевое слово ВЫБОР
Ключевое слово ВЫБОР используется для многовариантной передачи управления в зависимости от значения заданного выражения. Поддерживается только в режиме компилятора. Используются ключевые слова ВЫБОР и КОНЕЦ_ВЫБОРА.
ВЫБОР(*: выражение_выбора)
# *: выражение_1_случая_1 [, *: выражение_2_случая_1 ...
[, *: выражение_K_случая_1]]: операторы_случая_1
[# *: выражение_1_случая_2 [, *: выражение_2_случая_2 ...
[, *: выражение_K_случая_2]]: операторы_случая_2]
...
[# *: выражение_1_случая_N [, *: выражение_2_случая_N ...
[, *: выражение_K_случая_N]]: операторы_случая_N]
[ИНАЧЕ
операторы_секции_иначе]
КОНЕЦ_ВЫБОРА
Параметры
- выражение_выбора
- Выражение одного из простых (не объектных) типов, по которому происходит поиск соответствующего случая.
- выражение_K_случая_N
- K-ое выражение в списке выражений для случая N.
- операторы_случая_N
- Последовательность операторов, соответствующих случаю N.
Тип выражения выбора должен соответствовать типам выражений случаев, в противном случае возникнет ошибка. Если вычисленное значение выражения выбора равно одному из вычисленных значений выражений N-го случая, то выполняются операторы N-го случая. Если соответствий не найдено, то выполняются операторы секции после ключевого слова ИНАЧЕ (при ее наличии).
Выбор подходящего случая происходит путем последовательного вычисления значений выражений в том порядке, в котором они указаны в исходном тексте. Значения выражений случаев могут повторяться. Необходимо учесть, что если выражению выбора соответствуют выражения нескольких случаев, то будут выполнены операторы только первого из них.
Замечание: существует также функция ВЫБОР, которая выводит диалоговое окно, позволяющее выбрать строку из указанного списка.
Пример использования
сумма = 2
ВЫБОР (сумма)
# 1, 2: сумма = сумма+1
# 2, 3: сумма = сумма+1
# 3, 4: сумма = сумма+1
# 4, 5: сумма = сумма+1
ИНАЧЕ
СООБЩЕНИЕ("сумма неизвестна")
КОНЕЦ_ВЫБОРА // сумма = 3
Так как в первом же случае второе выражение соответствует выражению выбора, выполняются операторы первого случая, а все остальные случаи игнорируются.