Lua for 迴圈
阿新 • • 發佈:2018-11-05
Lua 程式語言中 for 迴圈語句可以重複執行指定語句,重複次數可在 for 語句中控制。
Lua 程式語言中 for語句有兩大類::
- 數值for迴圈
- 泛型for迴圈
數值for迴圈
Lua 程式語言中數值for迴圈語法格式:
for var=exp1,exp2,exp3 do
<執行體>
end
var從exp1變化到exp2,每次變化以exp3為步長遞增var,並執行一次"執行體"。exp3是可選的,如果不指定,預設為1。
例項
for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end
for的三個表示式在迴圈開始前一次性求值,以後不再進行求值。比如上面的f(x)只會在迴圈開始前執行一次,其結果用在後面的迴圈中。
驗證如下:
#!/usr/local/bin/lua
function f(x)
print("function")
return x*2
end
for i=1,f(5) do print(i)
end
泛型for迴圈
泛型 for 迴圈通過一個迭代器函式來遍歷所有值,類似 java 中的 foreach 語句。
Lua 程式語言中泛型 for 迴圈語法格式:
--列印陣列a的所有值 a = {"one", "two", "three"} for i, v in ipairs(a) do print(i, v) end
i是陣列索引值,v是對應索引的陣列元素值。ipairs是Lua提供的一個迭代器函式,用來迭代陣列。
例項
迴圈陣列 days:
#!/usr/local/bin/lua
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i,v in ipairs(days) do print(v) end