Lua 循环
Lua的循环
Lua语言具备多种类型的循环结构,包括for和while循环。
for循环
for循环根据循环变量对一组值进行迭代,用于遍历一个指定范围内的变量。
语法
for var=exp1,exp2,exp3 do
<执行体>
end
说明
exp1:起始值
exp2:终止值
exp3:步长值
for循环先设定一个变量,然后将变量用原始体内执行的第一个表达式赋值,循环体可以使用该变量,并以第三个表达式的结果加到该变量的值(或减去,如果第三个表达式是负数),并测试退出条件(第二个表达式是否达到,达到则退出循环)。
示例
下面是打印数组a中的所有值的for循环:
a = {1,2,3}
for i,v in ipairs(a) do
print(v)
end
上面代码中,i
是循环变量,ipairs()
函数用于遍历数组a中所有元素。
while循环
while循环会一直执行,直到该循环条件为false为止。
语法
while (condition) do
<执行体>
end
说明
while循环执行时,将首先对“condition”进行判断;如果“condition”为true,则进入循环体继续执行,执行完循环体后再次对“condition”进行判断,如果仍然为true,则再次进入循环体,以此类推,直到“condition”为false,则跳出循环体,继续执行循环体后的代码。
示例
下面是通过while循环计算1到100的总合:
sum = 0
i = 1
while i <= 100 do
sum = sum + i
i = i + 1
end
print("1 - 100 的总和为 ", sum)
上面代码中,首先定义了变量sum和i,利用while循环对1-100之间的数字进行求和操作,并最终输出结果。
repeat…until循环
repeat…until循环是在条件被检查之后才执行循环的一种历程。
语法
repeat
<执行体>
until( condition )
说明
repeat…until 循环的循环体会首先被执行,然后才对条件进行检查。如果条件为false,则执行体将再次执行,然后继续检查条件,并重复此过程,直到条件为真为止。
示例
下面是通过repeat…until循环求1到100的总和:
sum = 0
i = 1
repeat
sum = sum + i
i = i + 1
until i > 100
print("1 - 100 的总和为 ", sum)
上面代码中,通过repeat…until循环对1-100之间的数字进行求和操作,并最终输出结果。
总结:
- for循环用于遍历一个指定范围内的变量,while和repeat…until循环用于一直执行,直到该循环条件为false为止。
- 迭代stme[1]到stme[2],每次以stme[3]为向量自增stme[1],并检查是否达到等于stme[2],直到条件为假为止。因此,内部语句将被执行stme[2]-stme[1]+1次(假设stme[1]<=stme[2])。
- Lua并没有提供do…while循环结构,但是可以通过repeat…until循环来替代。