Lua/Конструкции языка: различия между версиями

Содержимое удалено Содержимое добавлено
Новая страница: «{{Автоматическая навигация|Предыдущая глава=Типы данных}} == Итераторы == В прошлой главе...»
 
Нет описания правки
Строка 28:
--> выводит 100 элементов
</syntaxhighlight>Напомним, что #a - длина массива (в нашем случае, она равна 100)
 
== Логические операции ==
В Lua существует 3 логические операции: and (и), or(или), not (нет). Результат этих операций - false или true. Фактически, они сравнивают истинность двух выражений. Первое, что мы рассмотрим - and: возвращает true, только когда оба выражения являются истинными:<syntaxhighlight lang="lua">
print(true and true) --> true (и то, и то - истина)
print(true and false) --> false (истина только одна, а должны быть истины все)
</syntaxhighlight>Второе - or. Он возвращает true, когда хотя бы одно из выражений является истинной:<syntaxhighlight lang="lua">
print(true or false) --> true (одна истина уже есть)
print(false or false) --> false (нет истинного выражения)
 
</syntaxhighlight>И третье - not. Возвращает отрицание выражения: если исходное выражение было истиной, то благодаря not оно станет ложным:<syntaxhighlight lang="lua">
print(not true) --> false
</syntaxhighlight>А теперь сделаем некоторые замечания: под true/false могут быть любые выражения, которые могут оказаться boolean, например: 2+2 == 4. Второе важное замечание - это приоритеты выражений: если мы захотим сравнить что-то более сложное, например a and b or c, то у нас могут возникнуть проблемы из-за интерпретации этого выражения. And всегда имеет больший приоритет над or: сначала будет сравниваться b или с, а потом итог прошлого выражения и а. Чтобы сделать выражение иным, мы можем использовать такую запись: (a and b) or c.