Условный оператор If then else в Lua

Условные операторы if then else lua

Условные операторы

В языке lua как и в большинстве других языков можно выполнять операции сравнения с помощью оператора if. Для чего это вообще нужно, в большинстве случаев нам нет необходимости всегда выполнять код программы целиком, обычно необходимо выполнять некоторые части программы в зависимости от того, что в данный момент происходит на рынке.

Приведу простой пример. Предположим мы решили приобрести фьючерс на сбербанк в 10:15, но по каким-то причинам мы не можем находиться за компьютером в это время. Если мы просто напишем программу купить фьючерс на сбербанк, то как только мы эту программу запустим фьючерс будет куплен. Для того чтобы купить в определенное время нам нужен оператор сравнения, который будет сравнивать текущее время с установленным временем и как только время совпадет выполнит часть программы где будет описана покупка фьючерса.

Сравнивать можно всё что угодно, а не только время. Можно сравнивать текущую цену с установленной заранее и как только цены совпадают выставить ордер. Также операторы сравнения можно применять и в вычислении. Например если мы хотим посчитать количество растущих баров на графике, мы можем написать следующее условие, если цена закрытия больше цены открытия, значит это растущий бар прибавляем единицу. Суть применение операторов сравнения в целом думаю понятно.

Полная версия оператора if может выглядеть следующим образом

Обратите внимание на обязательные слова if — then — else — end — это и есть описание оператора сравнения.

Оператор сравнения состоит из обязательной части под названием Условие, а также из обязательной части под названием Действие при выполнении условия, дополнительно имеется необязательная часть под названием Действие если условие не выполняется, эту часть можно опускать если она нам не нужна.

Условия. Обычно условия описываются таким образом чтобы результат был либо Истина либо Ложь.

С этим думаю проблем возникнуть не должно, если условие дает истину выполняется Действие 1, иначе выполняется Действие 2.

Действия. После проверки условия необходимо выполнить какие-то действия. Действие может быть одно, либо два. Первое действие является обязательным, оно выполняется если условие является истинным. Второе действие не является обязательным, она выполняется если условие является ложным.

У вас могут возникнуть проблемы если результатом условия будет не Истина или Ложь, а к примеру число. Напишем такой пример.

В этом примере в условии написано число 1. В данном случае условие является истинным, а значит будет выполнено действие под номером 1. Любое число в результате будет означать истинное значения, каким бы это число не было положительным, отрицательным или равнялось нулю.

Также в условии может находиться текст.

В этом случае условие также является истинным, даже если текст не будет содержать ни одного символа.

Условие будет ложным, если значение будет равняться nil

В этом примере условие является ложным и будет выполнено действие номер 2.

Для того чтобы выполнять сравнения значений необходимо воспользоваться операторами сравнения:
>     больше
>=  больше или равно
<     меньше
<=  меньше или равно
==  строго равно
~=  не равно

Используя операторы сравнения мы можем сравнивать значения и получать в результате Истину или Ложь. Пример.

В этом примере мы проверяем чтобы переменная а была равна 1, если это так выполняется Действие 1, иначе выполняется Действие 2.

Данный пример также проверяет переменную а, но теперь переменная а может быть любым числом больше 1, или равно 1.

Теперь наоборот, переменная a должна быть обязательно меньше 1. В данном примере условие не выполняется, а значит выполняется Действие 2.

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

Логические операторы в условиях.

В условиях допускается использовать логические операторы, они описаны в главе Логические операции в языке lua.

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

В этом примере переменная а может быть любым числом в диапазоне от 1 до 5. Обратите внимание, что число не обязательно должно быть целым, условие также будет являться истинным если переменная а равна 3,758. Главное чтобы переменная а была больше или равна 1 и меньше или равна 5.

В этом примере используется 3 логических операторов. Условие будет является истинным только в том случае, если все сравнения будут выполнены. Обратите внимание что в этом примере используются разные операторы сравнения, а также расставлены дополнительные скобки. В этом примере условие будет являться истинным, если переменная а находится в диапазоне от 1 до 5 или в диапазоне от -1 до -5.

Вложение условий или оператор elseif

Еще один вариант применения условий, это когда необходимо выполнять проверку сразу на несколько значений. В самом верху я приводил пример в котором мы покупали фьючерсы в определённое время. А что если мы хотим не только покупать но и продавать. Расширяем наш пример таким образом. Если время 10:15, тогда выставить ордер. Первое условие описали, а вторым условием мы определимся какой именно ордер выставлять на покупку или на продажу. Если текущая цена больше или равна 15, тогда выставить ордер на покупку. Если цена меньше или равна 10, тогда выставить ордер на продажу. Теперь наш алгоритм выполнит одно из трёх действий, выставит ордер на покупку, выставит ордер на продажу или ничего не будет делать даже если время будет 10:15.

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

В этом примере мы переменную а проверяли на пять значений. Таким образом мы вкладывали одно условие в другое. Тот же самый пример можно написать используя оператор elseif

Этот пример выполняет абсолютно тоже самое что и пример выше, но выглядит гораздо лучше.

Теперь я думаю вы разобрались с условиями и сможете использовать их в своей работе.

Постоянная ссылка на это сообщение: https://k-pavel.ru/uslovnyj-operator-if-then-else-v-lua/

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Подписаться на