1. 程式人生 > >Lua for 迴圈

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

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