Ключевое слово ВЫБОР
Ключевое слово ВЫБОР используется для многовариантной передачи управления в зависимости от значения заданного выражения. Поддерживается только в режиме компилятора. Используются ключевые слова ВЫБОР и КОНЕЦ_ВЫБОРА.
ВЫБОР(*: выражение_выбора) # *: выражение_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
Так как в первом же случае второе выражение соответствует выражению выбора, выполняются операторы первого случая, а все остальные случаи игнорируются.