了解 Lua 的 for 循环

了解 for 循环结构和你在控制它时拥有的选项,这样你可以对如何在 Lua 中处理数据做出聪明的决定。

了解 for 循环结构和你在控制它时拥有的选项,这样你可以对如何在 Lua 中处理数据做出聪明的决定。

了解 Lua 的 for 循环

在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在​​Lua​​​中,有​​while​​​循环、​​for​​​循环和​​repeat until​​​循环。本文介绍​​for​​​循环。我将在另一篇文章中介绍​​while​​​和​​repeat until​​循环。

for 循环

​for​​循环接受已知数量的项目并确保处理每个项目。“项目”可以是数字,它也可以是一个包含多个条目或任何 Lua 数据类型的表。语法和逻辑有点灵活,但语法允许这些参数,每个参数本质上描述了一个计数器:

  • 计数器的起始值
  • 停止值
  • 你希望计数器前进的增量

例如,假设你有三个项目并希望 Lua 处理每个项目。你的计数器可以从 3 开始一直持续到 1,增量为 -1。这呈现为 3、2、1 的计数。

mytable = { "zombie", "Halloween", "apocalypse" }for count = 3, 1, -1 do  print(count .. ": " .. mytable[count])end

运行代码以确保所有三个项目都得到处理:

$ lua ./for.lua3: apocalypse2: Halloween1: zombie

这段代码有效地“反向”处理了表,因为它是倒数。你可以正数:

for count = 1, 3, 1 do  print(mytable[count])end

此示例从最低索引到最高索引处理表:

$ lua ./for.lua1: zombie2: Halloween3: apocalypse

增量

你也可以更改增量。例如,也许你想要一个没有万圣节盛况的僵尸启示录:

mytable = { "zombie", "Halloween", "apocalypse" }for count = 1, 3, 2 do  print(mytable[count])end

运行代码:

$ lua ./for.luazombieapocalypse

该示例打印了 1 和 3,因为第一个计数是 1,然后递增 2(总共 3)。

计数器

有时你不知道需要 Lua 遍历数据的次数。在这种情况下,你可以将计数器设置为由其他进程填充的变量。

另外,​​count​​​这个词不是关键字。为了清楚起见,这正是我在示例代码中使用的内容。程序员通常使用更短的名称,例如​​i​​​或​​c​​。

var = os.time()if var%2 == 0 then  mytable = { var }else  mytable = { "foo", "bar", "baz" }endfor c = 1, #mytable, 1 do  print(mytable[c])end

此代码创建一个变量,其中包含启动时的时间戳。如果时间戳是偶数(除以 2 时模数为 0),则只将时间戳放入表中。如果时间戳是奇数,它将三个字符串放入一个表中。

现在你无法确定你的​​for​​​循环需要运行多少次。可能是一次或是三次,但没有办法确定。解决方案是将起始计数设置为 1,将最终计数设置为表的长度(​​#mytable​​是确定表长度的内置快捷方式)。

可能需要多次运行脚本才能看到这两个结果,但最终,你会得到如下结果:

$ lua ./dynamic.lua1665447960$ lua ./dynamic.luafoobarbaz

带 pairs 和 ipairs 的 for 循环

如果你已经阅读了我关于​​表迭代​​​的文章,那么你已经熟悉了 Lua 中最常见的​​for​​​循环之一。这个使用​​pairs​​​或​​ipairs​​函数来迭代一个表:

mytable = { "zombie", "Halloween", "apocalypse" }for i,v in ipairs(mytable) do  print(i .. ": " v)end

​pairs​​​和​​ipairs​​​函数“解包”表并将值转储到你提供的变量中。在此示例中,我将​​i​​用于索引,将​​v​​用于,但变量名称无关紧要。

$ lua ./for.lua1: zombie2: Halloween3: apocalypse

for 循环

​for​​​循环结构在编程中很常见,由于经常使用表和​​pairs​​​函数,因此在 Lua 中非常常见。了解​​for​​循环结构和控制它时的选项意味着你可以就如何在 Lua 中处理数据做出明智的决定。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 18:16
下一篇 2023年5月6日 18:16

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信