隨手扎
【30天Lua重拾筆記12】基礎2: 控制 - 條件
分支條件控制 - if/elseif/else
Lua的分支控制條件就僅有這麼一組:if-then
/elseif-then
/else
/end
和其他語言一樣,elseif
可以出現多次。你想用else if
寫成巢狀也沒人會管你。他們兩個寫起來也真的蠻像的,除了你可能要多寫幾次end
:
if true then
print("if block")
elseif true then
print("elseif block")
else
print("else")
end
if true then
print("if block")
else if true then
print("elseif block")
else
print("else")
end
end
注意到最後有兩個end
。實際上我試故意將他這樣排版的,這樣兩個看起來比較像。
通常需要使用到巢狀分支,還是好好縮排比較好。
switch
雖然只有if
蠻簡單的,但有時候會想要使用switch
這類結構。沒事,可以模擬:
option = "one"
switch = {
["one"] = function () print "run one" end,
["tow"] = function () print "run two" end,
}
switch[option]() -- => run one
實際上可以這樣寫:
option = "one"
switch = {
one = function () print "run one" end,
tow = function () print "run two" end,
}
switch[option]() -- => run one
這也算是Lua語法糖的一部分。不過我們等到hash-table
在來說明。
熟悉ECMAScript的朋友可能已經猜到為什麼了。