Appearance
循环
循环是编程中非常重要的控制结构,它允许我们重复执行一段代码。Lua 提供了多种循环结构,本章节将介绍这些循环的使用方法。
while 循环
while 循环会在条件为真时重复执行代码块:
lua
local i = 1
while i <= 5 do
print(i)
i = i + 1
end输出:
1
2
3
4
5for 循环
Lua 提供了两种 for 循环:数值 for 循环和泛型 for 循环。
数值 for 循环
数值 for 循环用于迭代数字范围:
lua
-- 基本形式:for 变量 = 起始值, 结束值, 步长 do
for i = 1, 5 do
print(i)
end输出:
1
2
3
4
5可以指定步长:
lua
-- 步长为 2
for i = 1, 10, 2 do
print(i)
end输出:
1
3
5
7
9步长也可以是负数:
lua
-- 倒序循环
for i = 5, 1, -1 do
print(i)
end输出:
5
4
3
2
1泛型 for 循环
泛型 for 循环用于迭代表中的元素:
lua
-- 迭代数组
local fruits = {"苹果", "香蕉", "橙子"}
for i, fruit in ipairs(fruits) do
print(i, fruit)
end输出:
1 苹果
2 香蕉
3 橙子lua
-- 迭代字典
local person = {name = "张三", age = 30, gender = "男"}
for key, value in pairs(person) do
print(key, value)
end输出:
name 张三
age 30
gender 男repeat-until 循环
repeat-until 循环会先执行代码块,然后检查条件,如果条件为假,则继续循环:
lua
local i = 1
repeat
print(i)
i = i + 1
until i > 5输出:
1
2
3
4
5循环控制
break 语句
break 语句用于跳出当前循环:
lua
for i = 1, 10 do
if i == 5 then
break
end
print(i)
end输出:
1
2
3
4goto 语句
goto 语句可以跳转到指定的标签:
lua
for i = 1, 10 do
if i == 5 then
goto continue
end
print(i)
::continue::
end输出:
1
2
3
4
6
7
8
9
10循环嵌套
循环可以嵌套使用:
lua
-- 打印乘法表
for i = 1, 9 do
for j = 1, i do
io.write(j, "×", i, "=", i*j, "\t")
end
io.write("\n")
end输出:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81无限循环
如果循环条件永远为真,就会形成无限循环:
lua
-- 无限循环
while true do
print("Hello")
-- 这里应该有跳出循环的条件
end循环性能
在 Lua 中,循环的性能取决于循环体的复杂度和循环的次数。以下是一些提高循环性能的建议:
- 避免在循环中进行复杂的计算
- 避免在循环中创建新的表或函数
- 对于大型循环,考虑使用局部变量来存储频繁访问的值
小结
本章节介绍了 Lua 中的循环结构,包括 while 循环、for 循环(数值 for 循环和泛型 for 循环)、repeat-until 循环,以及循环控制语句 break 和 goto。掌握这些循环结构,对于编写 Lua 程序非常重要。