在编程中,迭代是一个重要的概念,因为代码通常必须多次扫描一组数据,以便它可以单独处理每个项目。控制结构使你能够根据通常在程序运行时动态建立的条件来指导程序的流程。不同的语言提供不同的控制,在 Lua 中,有 while 循环、for 循环和 repeat until 循环。本文介绍 for 循环。
lua中for循环的表达方式有两种。
一. 数字型
for var = a, b, c do <执行体> end
--解释:var从a变化到b,每次以c为步长。c是可选的,c默认为1
举例:
for i=1,6 do print(i) end
例子输出:
function 1 2 3 4 5 6
二. 泛型(泛型for循环通过迭代器函数来遍历所有值)
分为两种:ipairs和pairs
注意:
pairs: 迭代 table,遍历表中所有的 key 可以返回 nil,不会迭代中断
ipairs: 迭代数组,不能返回 nil,如果遇到 nil 则会迭代中断
举例:
local table_list= { [1] = "a", [3] = "b", [4] = "c" }
对table使用ipairs:
for i,v in ipairs(table_list) do // i为下标索引,v为table_list下标对应的值 print(table_list[i]) // 当i为2时迭代中断,因为下标为2的值为nil end
恰恰的,table使用pairs时就能避免上面的尴尬
for i,v in pairs(table_list) do // i为下标索引,v为table_list下标对应的值 print(table_list[i]) // 输出"a","b","c",不会被中断 end
说明:ipairs仅仅遍历值,所以更符合遍历数组,并且以下标1开始,否则也会迭代中断
https://blog.csdn.net/Terlxho/article/details/79047117
- 本文固定链接: https://www.fengshen.cn/2024/03/lua中的for循环/storyofwind/
- 转载请注明: fengshen 发表于 Dream of Wind | 一梦风神
觉得文章有用,微信打赏一元。
