循環(huán)
lua提供一下幾種循環(huán)處理方式
while循環(huán)? ?條件為true,重復(fù)執(zhí)行某些語句,執(zhí)行前先檢查條件是否為ture
for循環(huán)? ?重復(fù)執(zhí)行指定語句,重復(fù)次數(shù)可在for語句控制
repeat...until? ?重復(fù)執(zhí)行循環(huán),直到指定條件為真時為止
循環(huán)嵌套? ?可以在循環(huán)中嵌套循環(huán)
循環(huán)控制語句:
break 退出當(dāng)前循環(huán)或語句,并開始腳本執(zhí)行接著的語句
無限循環(huán)
while(true)
do
print("循環(huán)一直執(zhí)行")
end
while循環(huán)
語法
while(condition)
do
statemets
end
condition 循環(huán)條件
statemets 循環(huán)語句
for循環(huán)
for循環(huán)有兩大類:
? ? ? 數(shù)值for循環(huán)
? ? ? 泛型for循環(huán)
數(shù)值for循環(huán)
for var = exp1,exp2,exp3 do
statemets
end
var從exp1變化到exp2,每次變化以exp3為步長遞增var,并執(zhí)行一次statemets(循環(huán)體) ,exp3是可選的,如果不指定,默認是1.
--例:
function f(x)
print("function: ".. x);
return x * 2
end
for i = 1 ,f(5) do
print(i)
end
--結(jié)果 :
1
2
3
4
5
6
7
8
9
10
泛型for循環(huán)
泛型for循環(huán)通過一個迭代器函數(shù)來遍歷所有制,類似C# 中foreach語句
泛型for循環(huán)語法格式
for i,v in ipairs(a) do
print(v)
end
i是數(shù)組索引值,v是對應(yīng)索引的數(shù)組元素組,ipairs是Lua提供的一個迭代器函數(shù),用來迭代數(shù)組.
--循環(huán)days
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i,v in ipairs(days) do
print(i.." : "..v)
end
--結(jié)果:
1 : Sunday
2 : Monday
3 : Tuesday
4 : Wednesday
5 : Thursday
6 : Friday
7 : Saturday
repeat ...until
repeat ... until 不同與for和while
循環(huán)的條件語句在當(dāng)前循結(jié)束后判斷
repeat ... until 循環(huán)格式:
repeat
statements
until(condition)
例如
a = 10
repeat
print("a的值為",a)
a = a + 1
until( a > 15)
--結(jié)果:
a的值為 10
a的值為 11
a的值為 12
a的值為 13
a的值為 14
a的值為 15
嵌套循環(huán)
格式:
for init,max/min value, increment do
for init,max/min value, increment do
statements
end
statements
end
while(condition)
do
wile(condition)
do
statements
end
statements
end
repeat
statements
repeat
statements
until(condition)
until(condition)
除了上面的還有使用不同的循環(huán)類型進行嵌套循環(huán)