Lua for 迴圈

Lua 迴圈 Lua 迴圈

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

以上實例輸出結果為:

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  

以上實例輸出結果為:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

Lua 迴圈 Lua 迴圈