Переменная счетчика, используемая в цикле 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