Lua for 迴圈
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
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
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
可以看到 函數f(x)只在迴圈開始前執行一次。
泛型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
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i,v in ipairs(days) do print(v) end
以上實例輸出結果為:
Sunday Monday Tuesday Wednesday Thursday Friday Saturday