Инструкция «выбор»
Инструкция выбор является альтернативой инструкции если. Она может использоваться в двух формах: полной и предикатной. Предикатная форма отличается от полной отсутствием выражения выбора.
Синтаксис
выбор [выражение-выбора]
когда выражение-сравнения[, выражение-сравнения]
    инструкции-языка
[когда выражение-сравнения[, выражение-сравнения]
    инструкции-языка]
[иначе
    инструкции-языка]
;
- 
выражение-выбораВыражение, которое будет находиться в левой части логического выражения при проверке условий.
 - 
выражение-сравненияВыражение, которое будет находиться в правой части логического выражения при проверке условий. Может иметь несколько видов в зависимости от формы инструкции
выбор:- 
Полноценное выражение:
В этом случае проверяется следующее условие:
выражение-выбора == выражение-сравнения. Если используется предикатная форма инструкции, товыражение-сравнениядолжно представлять собой полноценное логическое выражение, которое возвращает результатИстинаилиЛожь. - 
Частичное бинарное выражение:
логическая-операция выражение-сравненияВ такое выражение могут входить операции сравнения (
==,!=и т. д.) и операцияэто. В этом случае проверяется следующее условие:выражение-выбора логическая-операция выражение-сравненияЕсли выражения сравнения перечислены через запятую, это означает, что перечисленные условия будут объединены по «ИЛИ».
 
 - 
 
Принцип работы
- Полная форма:
- Выполняется вычисление значения 
выражение-выбора. - Для каждого условия (или набора условий), указанного в ветках 
когда, выполняется сравнениевыражение-выбораивыражение-сравнения. - Если результат сравнения равен 
Истина, то выполняются инструкции языка после соответствующей строки. Затем управление передается в инструкцию языка, которая следует за символом;, закрывающим инструкциювыбор. Проверка условий выполняется в порядке следования ключевых словкогда. 
 - Выполняется вычисление значения 
 - Предикатная форма:
- Для каждой ветки 
когдавыполняется вычисление выражениявыражение-сравнения. - Если результат сравнения равен 
Истина, то выполняются инструкции языка после соответствующей строки. Затем управление передается в инструкцию языка, которая следует за символом;, закрывающим инструкциювыбор. Проверка условий выполняется в порядке следования ключевых словкогда. 
 - Для каждой ветки 
 
При любом варианте использования инструкции выбор, если ни одно из условий не было выбрано, а в инструкции присутствует ветвь иначе, управление будет передано в нее.
Пример
- Полная форма сравнения
 - Предикатная форма сравнения
 
метод ВыполнитьОперацию(Операция: ВидОперации, Массив: Массив<Число>): Число
    если Массив.Размер() == 0
        выбросить новый ИсключениеНедопустимыйАргумент("Массив не может быть пустым.")
    ;
    выбор Операция
    когда Сумма
        возврат Массив.Сумма()
    когда Среднее
        возврат Массив.Среднее()
    когда Максимум
        возврат Массив.Максимум()
    когда Минимум
        возврат Массив.Минимум()
    иначе
        выбросить новый ИсключениеНедопустимыйАргумент("Неподдерживаемая операция.")
    ;
;
перечисление ВидОперации
    Сумма,
    Среднее,
    Максимум,
    Минимум
;
метод ВыполнитьВычисления()
    знч Массив = [10, 20, 30, 40, 50]
    знч Сумма = ВыполнитьОперацию(ВидОперации.Сумма, Массив) // 150
    знч Среднее = ВыполнитьОперацию(ВидОперации.Среднее, Массив) // 30
    знч Максимум = ВыполнитьОперацию(ВидОперации.Максимум, Массив) // 50
    знч Минимум = ВыполнитьОперацию(ВидОперации.Минимум, Массив) // 10
;
метод ВыполнитьОперацию(Операция: ВидОперации, Массив: Массив<Число>): Число
    если Массив.Размер() == 0
        выбросить новый ИсключениеНедопустимыйАргумент("Массив не может быть пустым.")
    ;
    выбор
    когда Операция == ВидОперации.Сумма
        возврат Массив.Сумма()
    когда Операция == ВидОперации.Среднее
        возврат Массив.Среднее()
    когда Операция == ВидОперации.Максимум
        возврат Массив.Максимум()
    когда Операция == ВидОперации.Минимум
        возврат Массив.Минимум()
    иначе
        выбросить новый ИсключениеНедопустимыйАргумент("Неподдерживаемая операция.")
    ;
;
перечисление ВидОперации
    Сумма,
    Среднее,
    Максимум,
    Минимум
;
метод ВыполнитьВычисления()
    знч Массив = [10, 20, 30, 40, 50]
    знч Сумма = ВыполнитьОперацию(ВидОперации.Сумма, Массив) // 150
    знч Среднее = ВыполнитьОперацию(ВидОперации.Среднее, Массив) // 30
    знч Максимум = ВыполнитьОперацию(ВидОперации.Максимум, Массив) // 50
    знч Минимум = ВыполнитьОперацию(ВидОперации.Минимум, Массив) // 10
;