Условный оператор «if»#

Описание#

Условный оператор «if» предназначен для выполнения ветвления в логике обработки.

Синтаксис#

Имеет формат:

if(<условие>) <блок выражений при истинном условии> 
  else <блок выражений при ложном условии>

Также допустим следующий формат:

if(<условие1>) <блок выражений при истинном условии1> 
  else if(<условие2>) <блок выражений при ложном условии1 и истинном условии2> 
    else <блок выражений при ложном условии1 и условии2>

Каждый блок, как и ключевое слово else, может располагаться с новой строки.

В условии поддерживаются логические операции «и» (and), «или» (or) и «отрицание» (not) и круглые скобки для определения приоритета операции.

Примеры использования условного оператора «if»#

Пример 1#

Входящее сообщение:

{
  "a": 3.14,
  "z": 
  {
    "b": 10500,
    "c": "modul"
  },
  "d": true
}

Правило трансформации:

if(IN.z.b < "10000")
  OUT.test1 = IN.z.b
    else OUT.test2 = IN.a

Выходящее сообщение:

{
  "test2":3.14}

Пример 2#

Входящее сообщение:

{
  "a": 3.14,
  "z":
  {
    "b": 10500,
    "c": "modul"
  },
  "d": "modul"
}

Правило трансформации:

if((IN.z.c == IN.d and IN.d == "modul") or (IN.a == "modul" ))
  OUT.test1 = IN.z.c
    else OUT.test2 = IN.a

Выходящее сообщение:

{
  "test1":"modul"}

Пример 3#

Входящее сообщение:

{
  "a": true,
  "z": false
}

Правило трансформации:

define variable1 = In.a
define variable2 = In.z
if ($variable1 or $variable2 and !$variable2 == "true" )
  OUT.result1 = "TRUE"
    else OUT.result2 = "FALSE"

Выходящее сообщение:

{
  "result1":"TRUE"}

Пример 4#

Входящее сообщение:

{
  "a": 3.14,
  "z":
  {
    "b": 10500,
    "c": "code"
  },
  "d": "modul"
}

Правило трансформации:

if (IN.d == "code")
  OUT.test1 = "TRUE"
    else if (IN.a == "code")
      OUT.test2 = (IN.a + IN.z.b)
        else if (IN.c == "delete")
          OUT.test3 = IN.c
            else OUT.test4 = "FALSE"

Выходящее сообщение:

{
  "test2":10503.14}

Пример 5#

Входящее сообщение:

{
  "a": 3.14,
  "z":
  {
    "b": 10500,
    "c": "code"
  },
  "d": "modul"
}

Правило трансформации:

if(IN.z.b == "10500") {
  OUT.target1 = IN.a
  OUT.target2 = IN.z.b
  OUT.target3 = IN.z.c
}
    else OUT.target60 = IN.d

Выходящее сообщение:

{
  "target1":3.14,
  "target2":10500,
  "target3":"code"}

Пример 6#

Входящее сообщение:

{
  "a": 3.14,
  "z":
  {
    "b": 10500,
    "c": 775
  },
  "d": "task1",
  "m": "task2"
}

Правило трансформации:

if(IN.a < "3.13") {
  OUT.target1 = IN.a
  OUT.target2 = IN.z.b
  OUT.target3 = IN.z.c
}
    else {
      OUT.target4 = IN.d
      OUT.target5 = IN.m
    }

Выходящее сообщение:

{
  "target4":"task1",
  "target5":"task2"}

Пример 7#

Входящее сообщение:

{
  "a": false,
  "p": true,
  "z":
  {
    "b": 10500,
    "c": 775
  },
  "d": "task1",
  "m": "task2"
}

Правило трансформации:

if(IN.a == "true" and IN.p == "true") {
  OUT.target11 = IN.a
  OUT.target12 = IN.p
  OUT.target13 = IN.d
}
    else if(IN.z.b == "10500" and IN.z.c == "10500") {
      OUT.target21 = IN.z.b
      OUT.target22 = IN.z.c
    }
      else {
        OUT.target31 = IN.p
        OUT.target32 = IN.d
        OUT.target33 = IN.m
      }

Выходящее сообщение:

{
  "target31":true,
  "target32":"task1",
  "target33":"task2"}