Три этих понятия очень часто используются. Ни один торговый робот не может обойтись без этих операторов, тем более управляющей конструкции if then else. По сути, основное, что делает торговый робот – это сравнивает математически или логически определенные значения и в зависимости от результата сравнения совершает определенное действие, например вход в сделку или выход из сделки. Зная логические операторы, операторы сравнения и конструкцию if then else, можно создавать практически неограниченные по сложности торговые алгоритмы. Знание этого раздела на 100%, абсолютно необходимо для программирования.

Операторы сравнения.

Язык программирования Lua поддерживает стандартные операторы сравнения. Такие как:
«>» – больше;
«<» – меньше;
«>=» – больше или равно;
«<=» – меньше или равно;
«==» – равно, используется для нахождения равенства двух значений. Оператор равенства состоит из двух знаков равно подряд «==». Обратите внимание. Когда мы записываем значение в переменную, то используем одинарный знак равно «=», этот знак в языке программирования Lua называется оператор присваивания. Например, набирая код x = 10, мы присваиваем переменной x значение 10, набирая код x = y, мы присваиваем переменной x значение переменной y.
«~=» – отрицание равенства, не равно.

В результате выполнения операторов сравнения получается значение true (истина) или false (ложь). Если условие верно, то результатом будет true (истина), и программа продолжит выполнять код, предназначенный для данного условия. Если условие не верно, то результатом будет false (ложь), и программа перейдет на строку кода, предназначенную для данного условия.

Логические операторы.

Логическими операторами являются операторы and (логическое и), or (логическое или), not (логическое не).

and (логическое и) – оператор используется, когда необходимо сделать два и более сравнений, которые должны выполниться одновременно. Например, x == y and x > z, если x будет равен y и одновременно x будет больше «z», то результатом выполнения такой операции будет true, иначе если хотя бы одно из этих двух сравнений не выполняется, то результатом будет false.

or (логическое или) – оператор используется, когда нам необходимо чтобы одно из двух выражений выполнялось. Например, x == y or x > z, если x будет равен y или x будет больше «z», то результатом такой операции будет true, иначе, если ни одно из двух сравнений не выполняется, результатом будет false.

Логические операторы and и or, используют сокращенное вычисление. Например, если в условии с оператором and, первое условие не выполняется, то второе условие проверяться не будет. Например, x == y and x > z, если «x» не равен «y», то программа не будет проверять больше ли «x» чем «z». Оператор or действует похожим образом. Если первое условие выполняется, то программа не будет проверять, выполняется ли второе условие.

not (логическое не, отрицание) – оператор используется, для инверсии логического значения, например значение «x» равно значению «y», тогда результатом сравнения x == y будет true, но если мы напишем not (x == y), тогда результатом сравнения будет false. Мы не будем использовать оператор not в наших кодах.

Управляющая конструкция if then else end (если, тогда, иначе, конец).

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

if (если) – после данного оператора следует условие, которое необходимо проверить, заканчивается условие оператором then (тогда). После оператора then (тогда) следуют строки, с кодом который выполняются в случае верности условия if (если). В случае если условие не верно, то программа переходит к строке с оператором else (иначе) и выполняет сроки кода, следующие за оператором. Конструкция заканчивается оператором end (конец).

Полная форма записи конструкции if then else end (если, тогда, иначе, конец):

if <условие, которое необходимо проверить> then

<код, который необходимо выполнить, если условие true (истина)>

else

<код, который необходимо выполнить, если условие false (ложь)>

end

Сокращенная форма записи без оператора else (иначе):

if <условие, которое необходимо проверить> then

<код, который необходимо выполнить, если условие true (истина)>

end

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

Конструкцию можно записать в одну строку кода:

if <условие> then <действие> else <действие> end

if <условие> then <действие> end

Управляющая конструкция if then else end поддерживает вложенные конструкции любого типа. Мы можем вложить в конструкцию if then else end, другую конструкцию if then else end. Например:

if <условие> then

<код, который необходимо выполнить>

if <условие> then

<код, который необходимо выполнить>

else

<код, который необходимо выполнить>

end

else

<код, который необходимо выполнить>

end

В языке программирования Lua существует упрощенная форма записи вложенных условий elseif. Пример:

if <условие_1> then

<код_1>

elseif <условие_2> then

<код_2>

end

Работает эта конструкция следующим образом. В начале, проверяется <условие_1>, если условие выполняется, программа исполняет <код_1>, далее программа пропускает оператор elseif и переходит в конец конструкции к оператору end. Если <условие_1> не выполняется то программа переходит на оператор elseif, и проверяет <условие_2>, если условие выполняется, то программа исполняет <код_2>, если <условие_2> не выполняется программа переходит в конец кода к оператору end.

Реализуем выше перечисленные операторы, в коде на языке Lua используя редактор SciTE. Откроем редактор SciTE, создадим новый файл и сохраним его под именем «004 Логические действия.lua».

Объявим несколько переменных.

local x = 10
local z = 20
local a = 10
local b = 20
local c = 50
local y

Оператор равенства «==».

Проверим равенство переменных «x» и «a», если переменные равны, сложим их значение, результат поместим в переменную y и выведем на экран значение переменной «y». Если переменные не равны, то вычтем из значения переменной «x» значение переменной «a», результат поместим в переменную «y» и выведем значение на экран. Для наглядности оформим вывод результата на экран текстовым комментарием.

if x == a then

y = x + a
print («x == a, условие true, y = «..y)

else

y = x – a
print («x ~= a, условие false, y = «..y)

end

Результат выполнения условия true. Значения переменных равны, на экран выводится сумма значений переменных «x» и «а». Выполним скрипт, нажатием клавиши F5.

Это ознакомительная часть курса, что бы просмотреть полный курс, пожалуйста оплатите подписку, подписка действует 2 года. Помимо доступа к полному тексту курса, предоставляются все коды скриптов и вспомогательные файлы. Первые три раздела предоставляются бесплатно в полном объеме. Всем кто ранее покупал коды скриптов доступ будет предоставлен бесплатно, пожалуйста пришлите запрос с Email на который Вам были направлены коды.