© 版權聲明:本文為博主原創文章,轉載請注明出處
1.循環類型
1.1 while循環
- 語法:while(condition) do ...<執行語句> end
- 解析:判斷condition是否為true,為true執行語句,false結束循環
1.2 for循環
1.2.1 數值for循環
- 語法:for var = exp1, exp2, exp3 do ...<執行語句> end
- 解析:var從exp到exp2,步長為exp3(可選,默認為1);exp1,exp2,exp3都是數值
1.2.2 泛型for循環
- 語法:
1)for k, v in pairs(tab) ...<執行語句> end
2)for k, v in ipairs(tab) ...<執行語句> end
- 解析:
1)通過迭代器函數pairs來遍歷table的所有值,tab是一個table,k是索引,v是索引對應的值
2)ipairs與pairs作用相似,不過pairs遍歷所有key,ipairs只遍歷key值為整數的
1.3 repeat...until循環
- 語法:repeat ...<執行語句> until(condition)
- 解析:先執行語句,然后判斷condition是否為true,為true繼續執行語句,false結束循環(repeat...until循環至少執行一次)
1.4 嵌套循環
- 在循環內再嵌套一個或多個循環
2.循環控制語句
2.1 break語句
- 退出當前循環語句,並開始執行緊接着的語句
3.無限循環
- 在循環體中,如果條件永遠為true,循環語句就會永遠執行下去
4.loops.lua
print("while:")
a = 0
while(a < 3) do
local x = a * 3 - 1
print("x = " .. x)
a = a + 1
end
print("\nfor:")
for i = 1, 5 do -- 數值for循環,默認步長為1
print("第" .. i .. "次循環")
i = i + 1
end
print()
for i = 5, 1, -2 do -- 數值for循環,步長為-2
print("第" .. i .. "次循環")
i = i + 1
end
tab = {
key1 = "val1",
key2 = "val2",
"val3"
}
print("\npairs:")
for k, v in pairs(tab) do -- 泛型for循環,pairs可迭代table中的所有key
print("k = " .. k .. " , v = " .. v)
end
print("\nipairs:")
for k, v in ipairs(tab) do -- 泛型for循環,ipairs只可迭代table中key值為整數的
print("k = " .. k .. " , v = " .. v)
end
print("\nrepeat:")
x = 0
repeat -- repeat...until循環,先執行后判斷條件,所以至少執行一次
print("x = " .. x)
x = x - 1
until(x < 0)
print("\nNested loop:") -- 嵌套循環,在一個循環里嵌套一個或多個循環語句
y = 2
while(y > 0) do
for j = 1, 3 do
print(y .. " * " .. j .. " = " .. j * y)
end
y = y - 1
end
print("\nbreak:")
for i = 0, 10 do -- break,退出當前循環或語句
print("i = " .. i)
if(i == 2) then
print("break...")
break
end
end
5.效果預覽

