📅  最后修改于: 2023-12-03 15:15:10.056000             🧑  作者: Mango
Lua中的for循环有两种形式:数值for循环和泛型for循环。数值for循环是遍历一定范围内的数字,而泛型for循环则是遍历一些迭代器返回的值。
数值for循环的语法格式为:
for var = start, finish, step
do
--执行的代码
end
其中,start
表示循环计数的起始值,finish
表示循环计数的结束值,step
表示循环计数的步长。当step
没有被指定时,默认为1。
例如,下面的代码使用数值for循环打印出1到5之间的整数:
for i = 1, 5 do
print(i)
end
泛型for循环的语法格式为:
for var_1, ···, var_n in explist do
--执行的代码
end
这里的explist
表示一个或多个表达式,可以返回一个迭代器函数、状态和控制变量。循环体将迭代器函数返回的值赋值给var_1, ···, var_n
。
例如,下面的代码使用泛型for循环遍历数组:
days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}
for i, v in ipairs(days) do
print(i, v)
end
在这个例子中,ipairs
是Lua内置的一个迭代器函数,它返回一个索引和每个索引对应的值。
在for循环中,Lua还支持使用break和continue来控制循环流程。break用于跳出循环,而continue则用于跳过当前迭代。
例如,下面的代码使用break语句打印出1到10之间的奇数:
for i = 1, 10 do
if i % 2 == 0 then
goto continue
elseif i > 7 then
break
else
print(i)
end
::continue::
end
注意,在Lua中使用continue需要使用goto语句来跳过当前迭代。