Lua中邏輯運(yùn)算符and,or,not 區(qū)別與用法

在Lua中,邏輯運(yùn)算符包括 and、ornot。它們用于對(duì)布爾值進(jìn)行邏輯運(yùn)算。

and運(yùn)算符:

當(dāng)同時(shí)滿足兩個(gè)表達(dá)式時(shí),返回第二個(gè)表達(dá)式的值;否則,返回第一個(gè)表達(dá)式的值。如果第一個(gè)表 達(dá)式的值為falsenil,則直接返回該值;否則,返回第二個(gè)表達(dá)式的值。代碼示例:

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 簡(jiǎn)單記憶法: a 為 true 返回 b ,a 為 false ,返回 a

\color{red}{特殊說(shuō)明} :邏輯運(yùn)算符將 false 和 nil 視為假,其他均視為真,0也視為真。

nil 在 lua 中表示一個(gè)無(wú)效值或 空值。在表達(dá)式中則表示 false。 假如一個(gè)變量沒(méi)有賦值前,那么他的值則為 nil。

or運(yùn)算符:

當(dāng)至少有一個(gè)表達(dá)式滿足條件時(shí),返回第一個(gè)滿足條件的表達(dá)式的值;否則,返回最后一個(gè)表達(dá)式的值。如果第一個(gè)表達(dá)式的值為 truenil,則直接返回該值;否則,返回第二個(gè)表達(dá)式的值。 代碼示例:

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簡(jiǎn)單記憶法: a 為 true 返回 a ,a 為 false ,返回 b

not運(yùn)算符:

用于對(duì)一個(gè)表達(dá)式進(jìn)行取反操作,如果表達(dá)式的值為 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 優(yōu)先級(jí)

當(dāng)一行代碼同時(shí)出現(xiàn)and與or的時(shí)候,先進(jìn)行and操作。


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


and和or 簡(jiǎn)化判斷邏輯

需要注意的是,andor 運(yùn)算符在進(jìn)行邏輯運(yùn)算時(shí)是短路的,即如果第一個(gè)表達(dá)式的值已經(jīng)能夠確定整個(gè)表達(dá)式的結(jié)果,就不再計(jì)算第二個(gè)表達(dá)式。這可以用來(lái)簡(jiǎn)化判斷邏輯。 例如:

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容