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

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

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


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

Описание

Оператор Switch представляет собой расширенную версию ❗→ IF (условие "Если ... то ...") .

Если оператор IF имеет всего два исхода - True или False (зеленая или красная ветви), то Switch имеет возможность выбора нескольких вариантов. В случае отсутствия нужного варианта, кубик выйдет по ветке "Default".

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

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

image-20200806-162559

Либо воспользуйтесь ❗→ умным поиском.

Для чего это используется?

  • Выбор варианта из перечня
  • Проверка на определенное вхождение (соответствие)

Как пользоваться экшеном?

image-20210619-063301

Переменная

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

Информация

Начиная с версии 7.4.0.0 из этого поля сразу можно и создать переменную (до этого можно было только выбрать из уже существующих).

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

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

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

image-20210302-133501

Default

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

На заметку

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

Пример

image-20200806-172100

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

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

Далее создадим операции ❗→ Оповещение (Notification/Запись в лог) для каждого из вариантов.

Видео с примером использования

📹 Здесь было видео

Для тех, кто хочет поработать с C# кодом

Вы можете реализовать подобный функционал через C# ❗→ C# код (Си шарп код .net)

Пример кода для варианта выше

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

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