Lua for ループ

Lua 循环Lua ループ

Lua プログラミング言語では、for ループ文は指定された文を繰り返し実行できます。繰り返し回数は for 文内で制御できます。

Lua プログラミング言語の for 文には、主に2つの種類があります:

  • 数値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 の3つの式はループ開始前に一度だけ評価され、以後は評価されません。たとえば、上記の 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 ループ

その他の拡張