Lua for 循環(huán)
Lua 編程語言中 for 循環(huán)語句可以重復執(zhí)行指定語句,重復次數(shù)可在 for 語句中控制。
Lua 編程語言中 for語句有兩大類::
- 數(shù)值for循環(huán)
- 泛型for循環(huán)
數(shù)值for循環(huán)
Lua 編程語言中數(shù)值for循環(huán)語法格式:
for var=exp1,exp2,exp3 do <執(zhí)行體> end
var從exp1變化到exp2,每次變化以exp3為步長遞增var,并執(zhí)行一次"執(zhí)行體"。exp3是可選的,如果不指定,默認為1。
實例
for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end
for的三個表達式在循環(huán)開始前一次性求值,以后不再進行求值。比如上面的f(x)只會在循環(huán)開始前執(zhí)行一次,其結果用在后面的循環(huán)中。
驗證如下:
#!/usr/local/bin/lua function f(x) print("function") return x*2 end for i=1,f(5) do print(i) end
以上實例輸出結果為:
function 1 2 3 4 5 6 7 8 9 10
可以看到 函數(shù)f(x)只在循環(huán)開始前執(zhí)行一次。
泛型for循環(huán)
泛型for循環(huán)通過一個迭代器函數(shù)來遍歷所有值,類似java中的foreach語句。
Lua 編程語言中泛型for循環(huán)語法格式:
--打印數(shù)組a的所有值 for i,v in ipairs(a) do print(v) end
i是數(shù)組索引值,v是對應索引的數(shù)組元素值。ipairs是Lua提供的一個迭代器函數(shù),用來迭代數(shù)組。
實例
循環(huán)數(shù)組 days:
#!/usr/local/bin/lua days = {"Suanday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"} for i,v in ipairs(days) do print(v) end
以上實例輸出結果為:
Suanday Monday Tuesday Wednesday Thursday Friday Saturday
更多建議: