HoRain云--Lua流程控制全解析

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

Lua 的流程控制非常简洁,但有几个独特规则(尤其是 索引从 1 开始、没有 continue、只有 false/nil 为假)。下面按实战常用度系统讲解 👇
一、条件控制(if / elseif / else)
✅ 基本语法
if condition then
-- code
elseif condition2 then
-- code
else
-- code
end
✅ 示例
score = 85
if score >= 90 then
print("A")
elseif score >= 60 then
print("B")
else
print("C")
end
⚠️ Lua 中只有 false和 nil为假
if 0 then print("true") end --> true
if nil then print("no") end --> 不执行
二、逻辑运算符(短路求值)
|
运算符 |
含义 |
|---|---|
|
and |
与 |
|
or |
或 |
|
not |
非 |
经典技巧 ✅
x = x or 10 -- 默认值
y = a and b or c -- 三元模拟
⚠️ 真正的“三元运算符”:
result = a and b or c
(前提是 b不为 false/nil)
三、循环结构(重点)
1️⃣ while 循环
i = 1
while i <= 5 do
print(i)
i = i + 1
end
2️⃣ repeat ... until(直到型循环)
i = 1
repeat
print(i)
i = i + 1
until i > 5
✅ 至少执行一次
❌ 没有 do-while关键字
3️⃣ for 循环(最常用)
✅ 数值 for
for i = 1, 5 do
print(i)
end
带步长:
for i = 10, 1, -2 do
print(i)
end
⚠️ 循环变量是局部变量
for i = 1, 3 do end
print(i) --> nil
4️⃣ 泛型 for(遍历 table)
t = {"a", "b", "c"}
for i, v in ipairs(t) do
print(i, v)
end
user = {name="Tom", age=18}
for k, v in pairs(user) do
print(k, v)
end
|
迭代器 |
用途 |
|---|---|
|
ipairs |
数组(1..n) |
|
pairs |
所有键值 |
四、break / return
✅ break
for i = 1, 10 do
if i == 5 then break end
print(i)
end
✅ return
function foo()
return 1, 2
end
⚠️ Lua 没有 continue
五、模拟 continue(goto 技巧 ✅)
for i = 1, 5 do
if i == 3 then
goto continue
end
print(i)
::continue::
end
✅ Lua 5.2+ 支持 goto
六、流程控制 + 闭包(高级)
function makeCounter()
local i = 0
return function()
i = i + 1
return i
end
end
c = makeCounter()
print(c()) --> 1
print(c()) --> 2
七、常见坑 ⚠️
|
坑 |
说明 |
|---|---|
|
没有 continue |
用 if / goto |
|
索引从 1 |
不是 0 |
|
0 是真 |
只有 nil/false 为假 |
|
循环中修改表 |
不建议 |
八、一句话总结
Lua 流程控制 = if / while / repeat / for + 逻辑短路 + 无 continue
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐


所有评论(0)