Условный оператор «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"}