当前位置:   article > 正文

Lua 流程控制

Lua 流程控制

在 Lua 中,流程控制结构用于改变程序的执行顺序,使得程序可以根据特定条件执行不同的代码路径。Lua 提供了多种流程控制结构,包括条件语句、循环结构以及用于中断循环的特殊语句。下面是这些结构的详细介绍:

1. 条件语句

条件语句允许程序根据不同的条件执行不同的代码块。

if 语句

if 语句是最基本的条件语句。

示例
local x = 10

if x > 0 then
    print("x is positive")
elseif x == 0 then
    print("x is zero")
else
    print("x is negative")
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
if 语句的变体
  • if 语句可以省略 then 关键字。
  • if 语句还可以嵌套使用。
示例
local x = 10

if x > 0
    print("x is positive")
elseif x == 0
    print("x is zero")
else
    print("x is negative")
end

-- 嵌套 if 语句
if x > 0 then
    if x > 10 then
        print("x is greater than 10")
    else
        print("x is between 0 and 10")
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2. 循环结构

循环结构允许重复执行一段代码,直到满足特定条件。

for 循环

Lua 提供两种类型的 for 循环:数值 for 循环和通用 for 循环。

数值 for 循环

用于迭代一系列数字,通常用于数组的索引。

示例
for i = 1, 10 do
    print(i)
end
  • 1
  • 2
  • 3
通用 for 循环

用于迭代表中的键值对。

示例
local t = {"apple", "banana", "cherry"}

-- 使用 ipairs 遍历数组形式的表
for i, fruit in ipairs(t) do
    print(i, fruit)
end

-- 使用 pairs 遍历字典形式的表
local d = {"key1" = "value1", "key2" = "value2"}
for key, value in pairs(d) do
    print(key, value)
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
while 循环

while 循环会在每次循环之前检查条件。只要条件为真,就会执行循环体。

示例
local i = 1
while i <= 10 do
    print(i)
    i = i + 1
end
  • 1
  • 2
  • 3
  • 4
  • 5
repeat-until 循环

repeat-until 循环至少会执行一次循环体,然后在每次循环结束时检查条件。

示例
local i = 1
repeat
    print(i)
    i = i + 1
until i > 10
  • 1
  • 2
  • 3
  • 4
  • 5

3. 循环控制语句

Lua 提供了两种特殊的语句来控制循环的执行流程。

break 语句

用于立即退出循环。

示例
for i = 1, 10 do
    if i == 5 then
        break
    end
    print(i)
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
continue 语句

用于跳过当前循环的剩余部分,并继续下一次循环。

示例
for i = 1, 10 do
    if i == 5 then
        continue
    end
    print(i)
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例:使用条件语句和循环

下面是一个综合示例,演示了如何使用条件语句和循环来查找一个数组中的最大值。

local numbers = {10, 2, 5, 33, 22, 17}

local max = numbers[1]
for i = 2, #numbers do
    if numbers[i] > max then
        max = numbers[i]
    end
end

print("The maximum number is: " .. max)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这些就是 Lua 中流程控制的基本结构。如果您需要更详细的解释或有其他问题,请随时提问!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/963937
推荐阅读
相关标签
  

闽ICP备14008679号