📜  for loop lua (1)

📅  最后修改于: 2023-12-03 15:15:10.056000             🧑  作者: Mango

Lua中的for循环

Lua中的for循环有两种形式:数值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循环的语法格式为:

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内置的一个迭代器函数,它返回一个索引和每个索引对应的值。

break和continue

在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语句来跳过当前迭代。