Lua编程:流程控制语句详解

需积分: 5 0 下载量 193 浏览量 更新于2024-08-04 收藏 671KB PDF 举报
"lua基础篇-流程控制语句" 在 Lua 编程语言中,流程控制语句是控制程序执行流程的关键部分,主要包括while循环、if语句、repeat循环以及for循环,还有ipair与pair迭代器。这些语句使得程序员能够根据特定条件执行不同的代码块或者重复执行某段代码。 ### While循环 `while` 循环是一种先判断后执行的循环结构。它的基本形式如下: ```lua while (条件) do -- 循环体,当条件为真时执行 end ``` 在每次进入循环之前,Lua 会检查条件是否为真。如果条件为真,就会执行循环体内的代码;否则,循环将终止。 ### If语句 `if` 语句用于条件判断,支持单分支、双分支和多分支。基础形式如下: 1. **单分支**: ```lua if (条件) then -- 条件为真时执行的代码 end ``` 2. **双分支**: ```lua if (条件) then -- 条件为真时执行的代码 else -- 条件为假时执行的代码 end ``` 3. **多分支**: ```lua if (条件1) then -- 条件1为真时执行的代码 elseif (条件2) then -- 条件1为假,条件2为真时执行的代码 else -- 所有条件都为假时执行的代码 end ``` 在 Lua 中,`if` 语句后的 `then` 关键字可以省略括号,而 `elseif` 与 `then` 之间不应有空格。 ### Repeat循环 `repeat` 循环是先执行后判断的结构,适用于已知循环次数但条件难以预判的情况。其格式如下: ```lua repeat -- 循环体,先执行 until (条件) ``` 在每次循环结束后,Lua 检查条件是否满足,若满足则退出循环。 ### For循环 Lua 的 `for` 循环有两种形式:数值循环和泛型循环。 1. **数值循环**: ```lua for 变量 = 初始值, 结束值, (步长) do -- 循环体 end ``` 这通常用于已知步长的连续迭代,步长可以省略,默认为1。 2. **泛型循环**: ```lua for 变量列表 in 迭代函数 do -- 循环体 end ``` 这种循环适用于遍历任何可以迭代的对象,如表。`ipairs` 用于遍历索引连续且非负的数组部分,而 `pairs` 可以遍历整个表,包括索引不连续或包含负数的情况。 ### Ipair与Pair迭代器 `ipairs` 和 `pairs` 是 Lua 中用于遍历序列和表的内置迭代器。 - **ipairs** 用于遍历顺序的集合,从1开始直到遇到 `nil` 值。它适合于数组类型的集合,因为数组通常用连续的整数作为索引。 - **pairs** 用于遍历集合中所有的键值对,不局限于数字索引。它可以用于任何键值对组成的表,包括无序的键或含有非数字键的表。 Lua 的流程控制语句提供了灵活的方式来控制程序的执行流程,无论是简单的条件判断还是复杂的循环结构,都能有效地处理。