Конструкция оператора if в QLua может содержать следующие элементы:
if (если),
then (то),
else (иначе),
elseif (иначе если),
end (конец).
Несколько примеров использования:
-- ЕСЛИ значение переменной A больше 1, ТО if A > 1 then B = 10; -- присваиваем переменной B значение 10 end; -- КОНЕЦ -- ЕСЛИ значение переменной A больше 1, ТО if A > 1 then B = 10; -- присваиваем переменной B значение 10 else -- ИНАЧЕ B = 5; -- присваиваем переменной B значение 5 end; -- КОНЕЦ -- ЕСЛИ значение переменной A больше 1, ТО if A > 1 then B = 10; -- присваиваем переменной B значение 10 elseif A == 1 then -- ИНАЧЕ ЕСЛИ A равно 1, ТО B = 5; -- присваиваем переменной B значение 5 else -- ИНАЧЕ B = 1; -- присваиваем переменной B значение 1 end; -- КОНЕЦ -- ЕСЛИ значение переменной A больше 1, ТО if A > 1 then B = 10; -- присваиваем переменной B значение 10 elseif A == 1 then -- ИНАЧЕ ЕСЛИ A равно 1, ТО B = 5; -- присваиваем переменной B значение 5 elseif A < 1 then -- ИНАЧЕ ЕСЛИ A меньше 1, ТО B = 3; -- присваиваем переменной B значение 3 else -- ИНАЧЕ B = 1; -- присваиваем переменной B значение 1 end; -- КОНЕЦ |
При помощи оператора elseif можно вкладывать друг в друга бесконечное количество условий.
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!
Здравствуйте! Подскажите, пожалуйста, как в lua описать многосоставные логические конструкции, например как в C++: if((a>b && by || y==z)) - выражение истинно если а больше б и б меньше с, либо выражение истинно если х больше у или у равен z.
Здравствуйте!
Дмитрий, спасибо! Оказывается ответ был на поверхности)
Всегда пожалуйста 🙂
https://quikluacsharp.ru/qlua-osnovy/arifmeticheskie-operatsii-operatsii-sravneniya-i-logicheskie-operatsii-v-qlua/
В одной из статей в блоке кода вот такой кусок: if #Array5Min > 5 then . . . Что "#" означает и как это прочитать?
Этот оператор возвращает длину массива. Читается: если количество элементов массива > 5 то...
Конструкция понятна, интересует знак - #. Чем отличается if #Array5Min > 5 then... от if Array5Min > 5 then... .
Простите, нашёл тут: https://quikluacsharp.ru/qlua-osnovy/peremennye-massivy-i-funkcii-v-qlua-lua/
Я уже Вам ответил, знак # возвращает длину массива, если Вы напишите строку if Array5Min > 5 then, то Вам выдаст ошибку, потому что Array5Min это массив (table), а 5 - число, а таблицу с числом сравнивать нельзя.
Есть такая модель.
Не могу разобраться как поставить антиусловия , поясняю:
В условии 3 есть строчка 'and (p_nn~=0 or p_nnn~=0)) then ', надо чтобы если ХОТЬ одно из этих p ==0, то условие не выполнено, в данном же коде программа считает так - p_nn==0 допустим, но p_nnn~=0 (не равно) и все, думает условия выполнены.
Подскажите если ли какие либо способы задать это именно так, условия исключения или антиусловия.
Спасибо!
код в сообщении не закодился)) там где & - знаки > или <
впрочем важно "условие 3"
Так я разобрался)) поставил and просто, запутался малец.
Хорошо 🙂