我试图像这样在for循环中增加k
:
t = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
for k = 1, #t do
if k == 1 then
print(t[1])
else
print(t[k], t[k + 1], t[k + 2])
k = k + 2
end
end
但是它不起作用!如何在k
块中递增此else
?
答案 0 :(得分:5)
在for
循环中使用的计数器变量不会在迭代之间传播。考虑
for i=1, 3 do
print(i)
end
-- 1
-- 2
-- 3
现在考虑
for i=1, 3 do
print(i)
i = i+1
print(i, '\n')
end
-- 1
-- 2
--
-- 2
-- 3
--
-- 3
-- 4
请注意,前导值(1、2、3)没有变化。
解决方案是将for
循环转换为while
循环,以提供更多的自由度和对变量的控制。
k = 1
while k < #t do
if k == 1 then
print(t[1])
else
print(t[k], t[k+1], t[k+2])
k = k + 2
end
k = k + 1
end
-- 1
-- 2 3 4
-- 5 6 7
-- 8 9 10