Руководство разработчика

Ключевое слово ВЫБОР

Ключевое слово ВЫБОР используется для многовариантной передачи управления в зависимости от значения заданного выражения. Поддерживается только в режиме компилятора. Используются ключевые слова ВЫБОР и КОНЕЦ_ВЫБОРА.

ВЫБОР(*: выражение_выбора)
     # *: выражение_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

Так как в первом же случае второе выражение соответствует выражению выбора, выполняются операторы первого случая, а все остальные случаи игнорируются.


См. также: