🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

一、条件控制(if / elseif / else)

✅ 基本语法

✅ 示例

二、逻辑运算符(短路求值)

经典技巧 ✅

三、循环结构(重点)

1️⃣ while 循环

2️⃣ repeat ... until(直到型循环)

3️⃣ for 循环(最常用)

✅ 数值 for

4️⃣ 泛型 for(遍历 table)

四、break / return

✅ break

✅ return

五、模拟 continue(goto 技巧 ✅)

六、流程控制 + 闭包(高级)

七、常见坑 ⚠️

八、一句话总结


img

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 中只有 falsenil为假

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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐