前言:
此刻各位老铁们对“for循环执行一次时间是多久”大致比较关心,咱们都需要分析一些“for循环执行一次时间是多久”的相关知识。那么小编同时在网上收集了一些对于“for循环执行一次时间是多久””的相关知识,希望姐妹们能喜欢,同学们快快来了解一下吧!了解 for 循环结构和你在控制它时拥有的选项,这样你可以对如何在 Lua 中处理数据做出聪明的决定。
在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在 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.timeif 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 中处理数据做出明智的决定。
via:
作者:Seth Kenlon选题:lkxed译者:geekpi校对:wxy
本文由 LCTT原创编译,Linux中国荣誉推出
标签: #for循环执行一次时间是多久 #一个for循环时间