Перейти к основному содержимому

Switch (выбор из нескольких вариантов)

🔗 Оригинальная страница — Источник данного материала


Описание

Оператор Switch представляет собой расширенную версию IF. Вместо двух выходов — True или False (зеленая или красная ветви), появляется возможность выбрать несколько разных вариантов.

Если нужный вариант отстутствует, то кубик выйдет по ветке Default.

Как добавить действие в проект?

Через контекстное меню: Добавить действиеЛогикаSwitch

image-20200806-162559


Принцип работы

image-20210619-063301

Переменная

Здесь указывается переменная, которую мы будем проверять.

Теперь в этом поле можно сразу создать переменную

До версии 7.4.0.0 выбор был только из уже существующих.

Список условий

Тут мы пишем условия для выхода. Значение из переменной будет сравниваться с каждым из условий и при нахождении совпадения выйдет по соответствующей ветке.

В качестве условия для выхода можно использовать не только жестко заданный текст, но и переменные. Как в этом примере:

image-20210302-133501

Выход Default.

Если не будет найдено ни одного совпадения, то экшен выйдет по ветке Default. Если данная ветка при этом не соединена с экшеном, то появится ошибка.


Примеры использования

image-20200806-172100

Представим ситуацию, в которой у нас существует какое-либо значение у переменной switch_test.

Далее создадим операции Оповещение для каждого из вариантов.

Видео с примером

Пример на C#

Также подобный функционал можно реализовать через C# код:

string switch_var = project.Variables["switch_test"].Value;
switch(switch_var){
case "A":
project.SendInfoToLog("В переменной заключена буква A", true);
break;
case "B":
project.SendInfoToLog("В переменной заключена буква B", true);
break;
case "C":
project.SendInfoToLog("В переменной заключена буква C", true);
break;
case "D":
project.SendInfoToLog("В переменной заключена буква B", true);
break;
case "E":
project.SendInfoToLog("В переменной заключена буква E", true);
break;
default:
project.SendInfoToLog("Не обнаружено нужное соответствие, значение переменной: " + project.Variables["switch_test"].Value, true);
break;
}

Полезные ссылки