IF (условие "Если ... то ...")

Оглавление


Описание

Кубик “IF“ это один из основных логических экшенов, используемых в ZennoPoster. В своей работе он использует логику if из JavaScript.

Экшен “IF“ сравнивает значения и, в зависимости от того удовлетворяют они условию или нет, продолжает действие по “зеленой” или “красной” ветке. Для сравнения используются логические операторы. В самом простом виде оператор if сравнивает между собой два значения и, если значение оператора верное, то кубик принимает значение True (выход по зелёной ветке), если значение не верное, то False (выход по красной ветке).

Свойства экшена представляет собой поле ввода куда можно вставить переменные проекта, переменные окружения и константы: числа или строки (текст). Соответственно кубик “IF“ оперирует только двумя типами данных: числа и строки.


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

  • Для сравнения значений чисел

  • Для сравнения текстовых строк

  • Для проверки условий


Как работает экшен?

Рассмотрим простой пример для понимания этого оператора.

  1. Создадим переменную value1 и присвоим ей значение 1.

  2. Добавим кубик IF с помощью действий “Логика”→ “If

  3. В поле свойств кубика вставим операнд {-Variable.value1-}

  4. Добавим оператор “равно“ - ==

  5. Вставим второе сравниваемое значение - константу 1.

  6. Теперь если запустить кубик (выделить его и нажать кнопку “Далее” в ProjectMaker), то кубик завершится по зеленой линии (появится зеленая галочка). Это говорит нам о том, что значение верное (True), т. к. действительно переменная value1 равна 1.

  7. Замените в окне “Переменные” значение value1на 2 и повторите п. 6. Кубик завершится по красной линии (появится красный крестик). Это говорит нам о том, что значение не верное (False), т. к. переменная value1 не равна 1.

В примере выше мы использовали числовые данные и оператор сравнения “равно” (==). В следующем примере сравним строки и для этого будем использовать оператор “не равно” (!=).

Важно! При сравнении текстовых значений данные и переменные должны обязательно заключаться в кавычки: одинарные или двойные. Для чисел, наоборот, кавычки не нужны. В противном случае сравнение будет некорректным. Эту ошибку совершают многие новички.

  1. Создадим переменную value1 и присвоим ей значение “Hello World“.

  2. Добавим кубик IF с помощью действий “Логика”→ “If

  3. В поле свойств кубика вставим операнд {-Variable.value1-}

  4. Добавим оператор “не равно“ - !=

  5. Вставим второе сравниваемое значение - константу “Hello World“.

  6. Теперь если запустить кубик (выделить его и нажать кнопку “Далее” в ProjectMaker), то кубик завершится по красной линии (появится красный крестик). И это логично - значение в переменной равно значению второй строки и поэтому оператор “не равно!= выдаёт False (выход по красной ветке).

  7. Давайте заменим в окне “Переменные” значение value1на “Goodbye World“ и повторим п. 6. Кубик завершится по зеленой линии и это абсолютно верно ведь строка в переменной отличается от значения в правой части выражения и, соответственно, оператор “не равно!= верен и кубик выходит по True.

Кроме вышеуказанных операторов, которые используются для сравнения как чисел, так и строк, для сравнения чисел используются и другие операторы:
< Меньше

> Больше

<= Меньше или равно

>= Больше или равно

Кроме этих логических операторов на практике часто используются операторы дополнения, которые помогают создавать более сложные конструкции сравнения данных.


Оператор ИЛИ (||)

Оператор ИЛИ выглядит как двойной символ вертикального слэша. Этот оператор позволяет сравнить сразу несколько условий в цепочке. При этом они вычисляются слева направо. Кубик выдаст истинное значение (True) при условии истинного значения в любом из выражений, а ложное (False) при условии что все выражения ложные.

 

  1. Присвоим двум переменным {-Variable.value1-} и {-Variable.value2-} значения 1 и 12 соответственно.

  2. В свойствах экшена добавим строку {-Variable.value1-} > 0 || {-Variable.value2-} < 10

  3. Несмотря на то, что второе равенство не верное, кубик завершится по зеленой ветке, потому что оператор “ИЛИ” выдаст True если хотя бы одно из сравнений верное.

  4. Исправьте значение переменной {-Variable.value1-} тоже на ложное (например присвойте цифру 0) и тогда кубик выдаст False (отработает красная ветка).


Оператор И (&&)

Оператор “И” пишется как два амперсанда && и возвращает True, если все аргументы в него входящие истинны, а иначе – False.

Рассмотрим работу этого оператора на конкретном примере с текстовыми строками.

Оба аргумента истинны (в переменной value1 значение отличное от “Hello“, а в переменной value2 как раз значение “World“) и поэтому кубик завершается по зеленой ветке.

Приоритет оператора “И” && больше, чем “ИЛИ” ||, поэтому, если они оба присутствуют в одном кубике, то “И” выполняется в первую очередь.

Для логического сравнения, кроме кубика “IF”, можно использовать аналогичный оператор if из C# кода.


Таблица всех доступных операторов

Оператор

Описание

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

Оператор

Описание

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

<

Меньше

1<2

>

Больше

5>3

<=

Меньше или равно

7 <= 10

>=

Больше или равно

8 >= 8

==

Равно

“Привет” == “Привет”

!=

Не равно

“Привет” != “Пока”

&&

Логическое “И

“Привет” != “Пока” && 5>3

||

Логическое “ИЛИ

“День“ == “Ночь” || 2 > 1


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

На практике сравнение применяется очень широко. Например, нам нужно проверить - загрузился на странице хоть какой-то текст или нет.

Проверяем переменную окружения {-Page.Text-} на пустоту и, если она пустая (нет текста на странице), то кубик выйдет по зеленой ветке и можно перезагрузить страницу или поставить дополнительную паузу ожидая подгрузки страницы.

Также частое применение кубик “IF“ находит в циклах со счетчиком когда требуется постоянное сравнение счетчика с каким-то максимальным значением - Циклы


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