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开始,否则也会迭代中断