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 不存在 (其值為 falsenil),不管剩餘的條件是什麼,整體條件一定為假,剩餘的條件顯得無關緊要,也因此不會被檢查。

results matching ""

    No results matching ""