mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-25 00:50:15 +08:00
Merge pull request #28724 from wxy/20230214.1-⭐️-Lua-loops-how-to-use-while-and-repeat-until
RP:20230214.1 ⭐️ lua loops how to use while and repeat until
This commit is contained in:
commit
2d1b68ca7d
@ -3,14 +3,16 @@
|
|||||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||||
[#]: collector: "lkxed"
|
[#]: collector: "lkxed"
|
||||||
[#]: translator: "geekpi"
|
[#]: translator: "geekpi"
|
||||||
[#]: reviewer: " "
|
[#]: reviewer: "wxy"
|
||||||
[#]: publisher: " "
|
[#]: publisher: "wxy"
|
||||||
[#]: url: " "
|
[#]: url: "https://linux.cn/article-15575-1.html"
|
||||||
|
|
||||||
Lua 循环:如何使用 while 和 repeat until
|
Lua 循环:如何使用 while 和 repeat until
|
||||||
======
|
======
|
||||||
|
|
||||||
控制结构是编程语言的一个重要特征,因为它们使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供了不同的控制,在 Lua 中,有 while 循环、for 循环和 repeat until 循环。这篇文章涵盖了 while 和 repeat until 循环。由于它们的灵活性,我在一篇[单独的文章][1]中介绍 for 循环。
|
> 学习如何以及何时在 Lua 中使用 while 和 repeat until 循环。
|
||||||
|
|
||||||
|
控制结构是编程语言的一个重要特征,因为它们使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供了不同的控制,在 Lua 中,有 `while` 循环、`for` 循环和 `repeat` `until` 循环。这篇文章涵盖了 `while` 和 `repeat until` 循环。由于它们的灵活性,我在一篇 [单独的文章][1] 中介绍 `for` 循环。
|
||||||
|
|
||||||
条件是由一个使用运算符的表达式来定义的,运算符是你在数学课上可能认识的符号的一个花哨的术语。Lua 中有效的运算符有:
|
条件是由一个使用运算符的表达式来定义的,运算符是你在数学课上可能认识的符号的一个花哨的术语。Lua 中有效的运算符有:
|
||||||
|
|
||||||
@ -31,10 +33,9 @@ Lua 循环:如何使用 while 和 repeat until
|
|||||||
- `foo > 3`:变量 `foo` 是否大于 3?`foo` 必须是 4 或更大才能满足这个条件。
|
- `foo > 3`:变量 `foo` 是否大于 3?`foo` 必须是 4 或更大才能满足这个条件。
|
||||||
- `foo >= 3`:`foo` 是否大于或等于 3?`foo` 必须是 3 或更大才能满足这个条件。
|
- `foo >= 3`:`foo` 是否大于或等于 3?`foo` 必须是 3 或更大才能满足这个条件。
|
||||||
- `foo > 3 and bar < 1`:`foo` 是否大于 3 而 `bar` 小于 1?要满足这个条件,`foo` 变量必须在 `bar` 为 0 的同时为 4 或更大。
|
- `foo > 3 and bar < 1`:`foo` 是否大于 3 而 `bar` 小于 1?要满足这个条件,`foo` 变量必须在 `bar` 为 0 的同时为 4 或更大。
|
||||||
- `foo> 3 or bar < 1`:`foo` 是否大于 3?或者说,`bar` 是否小于 1?如果 `foo` 是 4 或更大,或者 `bar` 是 0,那么这个条件就是真的。如果 `foo` 是 4 或更大,而 `bar` 是 0,会怎样?答案出现在本文的后面。
|
- `foo> 3 or bar < 1`:`foo` 是否大于 3?或者,`bar` 是否小于 1?如果 `foo` 是 4 或更大,或者 `bar` 是 0,那么这个条件就是真的。如果 `foo` 是 4 或更大,而 `bar` 是 0,会怎样?答案出现在本文的后面。
|
||||||
|
|
||||||
|
### while 循环
|
||||||
### While 循环
|
|
||||||
|
|
||||||
只要满足某个条件,while 循环就会执行指令。例如,假设你正在开发一个应用来监测正在进行的僵尸末日。当没有剩余的僵尸时,就不再有僵尸末日了:
|
只要满足某个条件,while 循环就会执行指令。例如,假设你正在开发一个应用来监测正在进行的僵尸末日。当没有剩余的僵尸时,就不再有僵尸末日了:
|
||||||
|
|
||||||
@ -64,9 +65,9 @@ $ lua ./while.lua
|
|||||||
No more zombie apocalypse!
|
No more zombie apocalypse!
|
||||||
```
|
```
|
||||||
|
|
||||||
### Until 循环
|
### until 循环
|
||||||
|
|
||||||
Lua 还有一个 repeat until 循环结构,本质上是一个带有 “catch” 语句的 while 循环。假设你在从事园艺工作,你想追踪还剩下什么可以收获的东西:
|
Lua 还有一个 `repeat` `until` 循环结构,本质上是一个带有 `catch` 语句的 `while` 循环。假设你在从事园艺工作,你想追踪还剩下什么可以收获的东西:
|
||||||
|
|
||||||
```
|
```
|
||||||
mytable = { "tomato", "lettuce", "brains" }
|
mytable = { "tomato", "lettuce", "brains" }
|
||||||
@ -131,7 +132,7 @@ end
|
|||||||
|
|
||||||
### Lua 中的循环
|
### Lua 中的循环
|
||||||
|
|
||||||
从示例代码中可以看出,尽管有不同的实现方式,但循环基本上都是朝着同一个目标工作。选择一个对你来说有意义的,并且在你需要执行的处理过程中效果最好的。以防万一你需要它:终止失控循环的键盘快捷键是 **Ctrl+C**。
|
从示例代码中可以看出,尽管有不同的实现方式,但循环基本上都是朝着同一个目标工作。选择一个对你来说有意义的,并且在你需要执行的处理过程中效果最好的。以防万一你需要它:终止失控循环的键盘快捷键是 `Ctrl+C`。
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -140,10 +141,11 @@ via: https://opensource.com/article/23/2/lua-loops-while-repeat-until
|
|||||||
作者:[Seth Kenlon][a]
|
作者:[Seth Kenlon][a]
|
||||||
选题:[lkxed][b]
|
选题:[lkxed][b]
|
||||||
译者:[geekpi](https://github.com/geekpi)
|
译者:[geekpi](https://github.com/geekpi)
|
||||||
校对:[校对者ID](https://github.com/校对者ID)
|
校对:[wxy](https://github.com/wxy)
|
||||||
|
|
||||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||||
|
|
||||||
[a]: https://opensource.com/users/seth
|
[a]: https://opensource.com/users/seth
|
||||||
[b]: https://github.com/lkxed/
|
[b]: https://github.com/lkxed/
|
||||||
[1]: https://opensource.com/article/22/11/lua-for-loops
|
[1]: https://opensource.com/article/22/11/lua-for-loops
|
||||||
|
[0]: https://img.linux.net.cn/data/attachment/album/202302/25/152802hoi4khxzm3izpejh.jpg
|
Loading…
Reference in New Issue
Block a user