Lua 编程语言的条件控制语句是用来控制流程的,在遇到逻辑比较复杂,需要条件判断参与的时候,条件语句就很有效果了。

条件语句


条件语句在 Lua 中其实并不多,大体分为三种类型。

if-then-end(if 语句)

1
2
3
4
5
6

x = 2
-- 条件控制的表达式(x>1)结果可以是任何值,Lua 只把 false 和 nil 为假的,true 和 非nil 为真的
if x > 1 then
print(" 2 比 1 大")
end

if-then-else-end(if …else 语句)

1
2
3
4
5
6
7

x = 2
if x > 1 then
print(" 2 比 1 大")
else
print(" 2 比 1 小")
end

if-then-[elseif-end…]-else-end(if 嵌套语句)

1
2
3
4
5
6
7
8
9

score = 50
if score > 60 then
print("良好")
elseif score < 60 then
print("不及格")
else
print("及格")
end

循环


条件语句相对还比较好理解,那咱们再来看循环。在我们使用编程语言进行程序编写的时候,可能需要多次执行同一个部分的代码,但多写几遍代码块不科学,这就出现了循环,来解决这个问题。

在 Lua 中循环语句也是有多种的,我们一一来看。

for(标准 for 循环)

在 Lua 中不存在 continue ,只有 break 能终止循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

-- for 循环 的语法格式:
--[[
var 变量从 exp1 增加或减少到 exp2,每次变化都是参照 exp3 ,exp3 默认 1 可不选
for var=exp1,exp2,exp3 do
执行代码语句
end
--]]

-- i 从 1 增加到 10 每次增加 默认加1
for i = 1,10 do
print(i) -- 输出 1 2 3 4 5 6 7 8 9 10
end

-- i 从 1 增加到 10 每次增加 5
for i = 1,10,5 do
print(i) --输出 1 6 10
end

-- i 从 10 减少到 1 每次减少 3
for i = 10,1,-3 do
print(i) --输出 7 4 1
end

generic for(泛型 for 循环)

泛型 for 循环 有点像 C# 中的 foreach 语句,主要是通过迭代器来遍历数据的。

1
2
3
4
5
6
7
8
9
10
11
12

-- 上一篇已经学习了 table ,这里的 数组其实也是 table 的一种形式,后续再深入学习
arr = {"哈哈","呵呵","嘿嘿"}

for i, v in ipairs(arr) do
print(i,v)
end

-- 输出
1 哈哈
2 呵呵
3 嘿嘿

While

1
2
3
4
5
6
7
8
9
10
11
12
13

x = 1
sum = 0

while x <= 10 do
sum = sum + x
x = x + 1 -- lua 里没有 += 操作以及 累加 ++ 操作
end

print(sum)

-- 输出结果
55

Repeat…until

这个循环跟 for 和 while 有点不同,前二者都是先判断条件再执行,这个 repeat 反倒是先执行再去判断条件。

1
2
3
4
5
6
7
8
9

x = 1
repeat
x = x + 1
print(x)
until x >= 10

-- 输出结果
2 3 4 5 6 7 8 9 10

同类型循环可以嵌套,不同类型的循环也是可以嵌套使用的。

Lua 的条件语句和循环就先学习到这~