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

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;
}

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