美文网首页
Lua中逻辑运算符and,or,not 区别与用法

Lua中逻辑运算符and,or,not 区别与用法

作者: 北京朝阳区精神病院院长 | 来源:发表于2023-08-20 16:37 被阅读0次

在Lua中,逻辑运算符包括 andornot。它们用于对布尔值进行逻辑运算。

and运算符:

当同时满足两个表达式时,返回第二个表达式的值;否则,返回第一个表达式的值。如果第一个表 达式的值为falsenil,则直接返回该值;否则,返回第二个表达式的值。代码示例:

local a = true
local b = false
local c = nil
local d =true

print(a and d)  -- 输出 true
print(a and b)  -- 输出 false
print(b and a)  -- 输出 false
print(a and c)  -- 输出 nil
print(c and a)  -- 输出 nil

and 简单记忆法: a 为 true 返回 b ,a 为 false ,返回 a

\color{red}{特殊说明} :逻辑运算符将 false 和 nil 视为假,其他均视为真,0也视为真。

nil 在 lua 中表示一个无效值或 空值。在表达式中则表示 false。 假如一个变量没有赋值前,那么他的值则为 nil。

or运算符:

当至少有一个表达式满足条件时,返回第一个满足条件的表达式的值;否则,返回最后一个表达式的值。如果第一个表达式的值为 truenil,则直接返回该值;否则,返回第二个表达式的值。 代码示例:

local a = true
local b = false
local c = nil
print(a or b)  -- 输出 true
print(b or a)  -- 输出 true
print(a or c)  -- 输出 true
print(c or a)  -- 输出 true

or简单记忆法: a 为 true 返回 a ,a 为 false ,返回 b

not运算符:

用于对一个表达式进行取反操作,如果表达式的值为 falsenil,则返回 true ;否则,返回 false。代码示例:

local a = true
local b = false
local c = nil
print(not a)  -- 输出 false
print(not b)  -- 输出 true
print(not c)  -- 输出 true

and 与 or 优先级

当一行代码同时出现and与or的时候,先进行and操作。


print(true or false and false)  -- 输出true

and和or 简化判断逻辑

需要注意的是,andor 运算符在进行逻辑运算时是短路的,即如果第一个表达式的值已经能够确定整个表达式的结果,就不再计算第二个表达式。这可以用来简化判断逻辑。 例如:

local a = 10
local b = nil
local c = 20
local result = a and b   -- 如果a为false或nil,则直接返回a的值,否则返回b的值
print(result)  -- 输出 nil
local result = a or c    -- 如果a为true或nil,则直接返回a的值,否则返回c的值
print(result)  -- 输出 10

相关文章

  • Lua中and与or

    Lua中的逻辑运算符:与(and)、或(or)和非(not),与其他语言的逻辑运算符功能一致。但Lua中所有的逻辑...

  • 【003期】JavaSE面试题(三):JavaSE语法(1)

    一、& 和 && 的区别? &运算符有两种用法: 按位与 逻辑与 &&运算符是短路与运算。逻辑与跟短路与的差别是很...

  • Lua逻辑运算符

    Lua逻辑运算符 逻辑运算符认为false和nil是假(false),其他都为真,0也是true. Lua和C#逻...

  • Java中,&&与&,||与|的区别

    [Java中,&&与&,||与|的区别] 在Java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路...

  • lua 三目运算符实现

    预备知识lua中逻辑运算符有and、or、not,与其他语言的逻辑运算一致;所有运算符视false和nil为假,其...

  • 问题精选-Java

    一、&和&&的区别 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 二、Collection...

  • 阿里总结:java面试题基础

    4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collecti...

  • 运算符

    Lua运算符 运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算 Lua提供了以下几种运算符类型:算术...

  • Java中&与&&的区别

    一、定义 Java中&叫做按位与,&&叫做短路与。 二、区别 1、&既是位运算符又是逻辑运算符,&的两侧可以是in...

  • JAVA基础面试题

    1:&和&&的区别。 同:&和&&都可以用作逻辑运算符(与)的运算符,表示逻辑与(and)当运算符两边的表达式的结...

网友评论

      本文标题:Lua中逻辑运算符and,or,not 区别与用法

      本文链接:https://www.haomeiwen.com/subject/trbsmdtx.html