Lua流程控制:分支与循环详解

需积分: 3 1 下载量 13 浏览量 更新于2024-09-11 收藏 78KB PPTX 举报
"流程控制的PDF" 在编程语言中,流程控制是程序执行顺序的重要组成部分,它使得代码能够根据条件执行不同的路径或者重复执行特定的块。这篇笔记主要介绍了 Lua 语言中的流程控制语句,包括分支语句、循环语句等,对初学者来说是一份很好的学习资料。 1. Lua 分支语句: Lua 的分支语句以 `if` 开头,可以有多个 `elseif` 和一个可选的 `else` 部分。与 C 语言相比,Lua 的分支语句语法更加简洁,没有 `switch` 语句,但 `if` 和 `elseif` 可以链式写在一起,使得代码更紧凑。例如: ```lua local var = 2 if var == 1 then print("分支语句1") elseif var == 2 then print("分支语句2") else print("其它分支语句") end ``` 2. while 循环: Lua 的 `while` 循环类似于 C 语言,但更简洁。循环会持续执行直到条件不满足为止,`break` 语句可以用于提前退出循环。例如: ```lua local sum = 0 local i = 0 while i <= 100 do sum = sum + i i = i + 1 end print(sum) ``` 在 Lua 中,`sum = sum + i` 不可以简写为 `sum += i`,因为 Lua 没有提供这样的操作符。 3. repeat-until 循环: `repeat-until` 循环在 Lua 中类似于 C 语言的 `do-while` 循环,但条件检查放在了循环末尾。即使条件一开始就不满足,循环也会至少执行一次。例如: ```lua repeat print("hello") until true local sum = 0 local i = 1 repeat sum = sum + i i = i + 1 until i > 100 print(sum) ``` 4. for 循环: Lua 提供两种 `for` 循环,一种是基于范围的,另一种是基于迭代器的。 - 基于范围的 `for` 循环(for loop with range): ```lua local sum = 0 for i = 0, 100 do sum = sum + i end print(sum) ``` 当步进(step)为 1 时,可以省略。默认步进值是 1。 - 基于迭代器的 `for` 循环(for loop with iterator): 这种循环主要用于遍历表格或使用自定义的迭代函数,较为复杂,初学者可以先理解基于范围的 `for` 循环,对于基于迭代器的 `for` 循环,可以后续深入学习。 5. 转换循环类型: - 使用 `while` 实现 `for` 循环: ```lua local sum = 0 local i = 0 while i <= 100 do sum = sum + i i = i + 1 end ``` - 使用 `for` 实现 `while` 循环: ```lua local sum = 0 for i = 1, 101 do sum = sum + i end ``` - 使用 `for` 实现 `repeat-until` 循环: ```lua local sum = 0 local i = 1 for _ in ipairs({1, 2, 3, ..., 101}) do sum = sum + i i = i + 1 end ``` 学习总结与作业: 1. Lua 分支语句与 C 语言的主要差别在于 Lua 没有 `switch` 语句,`if` 和 `elseif` 可以链式写在一起。 2. `while` 循环中不使用 `sum = sum + i` 是因为 Lua 不支持这种简写,需要显式地进行加法运算。 3. `repeat-until` 循环的特点是至少会执行一次循环体,条件检查在循环末尾。 4. `for` 循环语句的使用方式包括基于范围和基于迭代器,省略步进时默认步进值是 1。 5. `for` 循环可以模拟 `while` 和 `repeat-until` 循环,通过适当设置初始值、结束条件和步进来实现。 作业练习: 1. 练习编写基础的 Lua 分支语句和循环语句,如嵌套循环、条件判断等。 2. 尝试用 `for` 循环实现斐波那契数列或其他数学序列。 3. 理解并实践基于迭代器的 `for` 循环,例如遍历一个表格。
2023-03-16 上传