Lua逻辑运算符and,or,not

本文介绍了Lua中逻辑运算符and、or、not的使用规则,指出其优先级高于or,并通过例子说明了如何利用这些运算符来替代三目运算符,以提高代码效率和可读性。同时强调了Lua的and和or与C/C++中的不同,提醒读者避免混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Lua中合理使用and,or,not可提高代码效率,减少代码量,增加可读性。

Lua逻辑运算符and,or,not规则如下:

设定 A 的值为 trueB 的值为 false

操作符描述实例
and逻辑与操作符。 若 A 为 true,则返回 B;若A为false,则返回A。(A and B) 为 false。

or

逻辑或操作符。 若 A 为 true,则返回 A,若A为false,则返回 B。(A or B) 为 true。
not逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。not(A and B) 为 true。

优先级and>or,意味着当一行代码同时出现and与or的时候,先进行and操作。

A or B and C == A or (B and C)

例子:

print('---------------and--------------------')
print(true and true)
print(true and false)
print(false and true)
print(false and false)
print('---------------or---------------------')
print(true or true)
print(true or false)
print(false or true)
print(false or false)
print('--------------not---------------------')
print(not(true))
print(not(false))
print('------------and,or-------------------')
print(true or false and false)

输出:

lua三目运算符:

ret = a > b and a or b

a>b时:a>b and a or b----->a or b----->a

a<=b时:a>b and a or b ----->a>b or b----->b

lua并不能完全实现三目运算符

  • 三目运算的一般形式a ? b : c

    a = true,结果为b
    a = false,结果为c

  • 对应Lua中的a and b or c

    • b = true
      • a = true
        • a and b –> true
        • b or c –> b
      • a = false
        • a and b –> false
        • b or c –> c
    • b = false
      • a = true
        • a and b –> false
        • b or c –> c
      • a = false
        • a and b –> false
        • b or c –> c

由此可见,lua要想实现三目运算符要注意

注意:Lua中的and与or,和C/C++的与、或有所区别。不要混淆使用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值