Lua for ループ
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
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 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その他の拡張
Lua ループ