if
- then
- else
if
- then
- else
描述讓你的程式碼藉由對邏輯條件的操作,而有條件地被執行:
myNumber = 12
if myNumber > 10 then
print( "Number is greater than 10" )
else
print( "Number is less than or equal to 10")
end
在這個例子裡,myNumber 為 12,它大於 10,所以 if 內的條件為真,且在其中的程式碼被執行。反之如果 myNumber 為 5,大於 10 的條件不成立,則會執行 else 區塊內的程式碼。注意 if 描述都必須以關鍵字 end 做結尾。
if
描述不一定需要 else
搭配:
if myNumber > 10 then
print( "Number is greater than 10" )
end
但可以搭配 elseif
做多條件的判斷:
if myNumber > 10 then
print( "Number is greater than 10" )
elseif myNumber < 10 then
print( "Number is less than 10" )
else
print( "Number is exactly 10" )
end
你也可以透過連接多個條件,組合成更複雜邏輯內容:
if myNumber > 10 and myNumber < 20 then
print( "myNumber is in range" )
end
為了讓 print()
被執行,and 所連接的兩個條件都必須為真。在 Lua 中,你不需要在 if
內特別加上括號,除非你希望改變判斷的優先順序。
讓我們看看下面這段程式碼:
myNumber = 12
if myNumber < 10 or myNumber > 20 then
print( "myNumber is out of range" )
end
or
連接的其中一個條件只要為真,則 print()
會被執行。在上面的例子中,由於 myNumber
為 12,落在 10 ~ 20 之間,所以不會透過 print()
輸出任何字串。
和其他程式語言不同的是,只要Lua 一旦發現整體條件的真假之後,就不會去判斷剩餘的條件。
if player and player.x < 0 then
print( "player is off screen" )
end
在這個例子裡,如果 player
不存在 (其值為 false
或 nil
),不管剩餘的條件是什麼,整體條件一定為假,剩餘的條件顯得無關緊要,也因此不會被檢查。