约 1673 字

约 8 分钟

#Lua 的 if 条件语句

条件语句根据条件的真(true)假(false)来控制程序的执行流程。

Lua 的 if 条件语句语法结构如下:

if 条件1 then
    代码块1
elseif 条件2 then
    代码块2

-- ...

elseif 条件n then
    代码块n
else
    代码块n+1
end
  • 如果“条件1”为 true 则执行“代码块1”
  • 否则,如果“条件2”为 true 则执行“代码块2”
  • ...
  • 如果“条件n”为 true 则执行“代码块n”
  • 否则,执行“代码块n+1”

真

否

真

否

真

否

开始

条件1?

代码块1

结束

条件2?

代码块2

条件n?

代码块 n

代码块 n+1

Lua 支持以下比较运算符:

  • ==: 等于
  • ~=: 不等于
  • <: 小于
  • >: 大于
  • <=: 小于等于
  • >=: 大于等于

这些操作的结果是 boolean 类型:值要么是 true,要么是 false。

示例:

SUNNY = 1   -- 晴天
RAINY = 2   -- 雨天

local weather = SUNNY

if weather == SUNNY then                -- 如果是晴天
    print("出门记得戴太阳镜")
elseif weather == RAINY then            -- 否则,如果是雨天
    print("出门记得带上雨伞")
end

运行结果:

出门记得戴太阳镜

#变量的作用域

作用域是指程序中定义的变量(或其他标识)符的可见性和生命周期范围,决定了变量(或其他标识)可以在哪些位置被使用。局部变量的作用域为其所在的代码块(例如 if 代码块)。

示例:

local x = 10        -- 作用域是当前文件

if true then
    local y = 20    -- 作用域是当前 if 代码块
end

if false then
    local y = 30    -- 作用域是当前 if 代码块,与前一个 if 中的 y 毫无关系
elseif true then
    local z = 40    -- 作用域是当前 elseif 代码块
else
    m = 30          -- 全局变量,作用域是全局 
end

Lua 的条件语句、循环语句、函数以及 do ... end 块都是独立的代码块(作用域)。

#do ... end 代码块

Lua 的 do ... end 代码块可用创建独立的作用域,常用于限制局部变量的可用范围。

do
    -- 代码块
end

示例:

do
    local x = 10
    print("代码块内部 x = ", x)
end

print("代码块外部 x = ", x)

运行结果:

代码块内部 x =  10
代码块外部 x =  nil

更新: 2025/10/2

作者: PlanC

创建: 2025/10/2