Lua - 嵌套循环



Lua编程语言允许在一个循环内使用另一个循环。以下部分显示了一些示例来说明这个概念。

语法

Lua中嵌套for循环语句的语法如下:

for init,max/min value, increment
do
   for init,max/min value, increment
   do
      statement(s)
   end
   statement(s)
end

示例

下面的程序使用嵌套for循环来打印月份和日期映射:

months = {"Jan", "Feb", "Mar"}
days = {"Sun", "Mon", "Tue"}

for x=1, #months
do
   for y=1, #days
   do
      print(months[x], days[y])
   end
end

输出

构建并运行上述代码时,会产生以下结果。

Jan	Sun
Jan	Mon
Jan	Tue
Feb	Sun
Feb	Mon
Feb	Tue
Mar	Sun
Mar	Mon
Mar	Tue

Lua编程语言中嵌套while循环语句的语法如下:

while(condition)
do
   while(condition)
   do
      statement(s)
   end
   statement(s)
end

示例

下面的程序使用嵌套while循环来获取质数:

i = 2
while i < 25
do
   j = 2
   while j <= (i/j)
   do
      if(i%j == 0)
      then
         break
      end
      j = j + 1
   end
   if(j > (i/j))
   then
      print(i, " is prime")
   end
   i = i + 1
end

输出

构建并运行上述代码时,会产生以下结果。

2	 is prime
3	 is prime
5	 is prime
7	 is prime
11	 is prime
13	 is prime
17	 is prime
19	 is prime
23	 is prime

Lua编程语言中嵌套repeat...until循环语句的语法如下:

repeat
   statement(s)
   repeat
      statement(s)
   until( condition )
until( condition )

示例

下面的程序使用嵌套repeat until循环来获取质数:

i = 2
repeat 
do
   j = 2
   repeat 
   do
      if(i%j == 0)
      then
         break
      end
      j = j + 1
   end
   until j > (i/j)
   if(j > (i/j))
   then
      print(i, " is prime")
   end
   i = i + 1
end
until i > 25

输出

构建并运行上述代码时,会产生以下结果。

2	 is prime
3	 is prime
5	 is prime
7	 is prime
11	 is prime
13	 is prime
17	 is prime
19	 is prime
23	 is prime

关于循环嵌套的最后一点说明是,您可以将任何类型的循环放在任何其他类型的循环内。例如,for循环可以放在while循环内,反之亦然。

lua_loops.htm
广告
© . All rights reserved.