Lua 跟其他常見語言一樣,提供了 while 控制結構,語法上也沒有什么特別的。但是沒有提供 do-while 型的控制結構,但是提供了功能相當?shù)?repeat。
while 型控制結構語法如下,當表達式值為假(即 false 或 nil)時結束循環(huán)。也可以使用 break 語言提前跳出循環(huán)。
while 表達式 do
--body
end
示例代碼,求 1 + 2 + 3 + 4 + 5 的結果
x = 1
sum = 0
while x <= 5 do
sum = sum + x
x = x + 1
end
print(sum) -->output 15
值得一提的是,Lua 并沒有像許多其他語言那樣提供類似 continue
這樣的控制語句用來立即進入下一個循環(huán)迭代(如果有的話)。因此,我們需要仔細地安排循環(huán)體里的分支,以避免這樣的需求。
沒有提供 continue
,卻也提供了另外一個標準控制語句 break
,可以跳出當前循環(huán)。例如我們遍歷 table,查找值為 11 的數(shù)組下標索引:
local t = {1, 3, 5, 8, 11, 18, 21}
local i
for i, v in ipairs(t) do
if 11 == v then
print("index[" .. i .. "] have right value[11]")
break
end
end