パフォーマンスは良い答えですが、コードが理解しやすくなり、エラーが発生しにくくなると思います。また、そうすることで、for ループが常に終了することを (ほぼ) 確実にすることができます。
代わりにそれを書いたらどうなるか考えてみてください:
local a = {"first","second","third","fourth"}
for i=1,#a do
print(i.."th iteration")
if i > 1 then a = {"first"} end
end
どのように理解していますfor i=1,#a
か?等値比較( で止まるi==#a
)か、不等比較( で止まるi>=#a
)か。それぞれの場合、どのような結果になるでしょうか。
for
Python の慣用句 using のように、Lua ループはシーケンスの反復として表示されるはずです(x)range
。
a = ["first", "second", "third", "fourth"]
for i in range(1,len(a)+1):
print(str(i) + "th iteration")
a = ["first"]
を使用するたびに条件を評価したい場合while
:
local a = {"first","second","third","fourth"}
local i = 1
while i <= #a do
print(i.."th iteration")
a = {"first"}
i = i + 1
end