lua - 如何在这里增加“k”?
问题描述
我试图k
像这样在 for 循环中增加:
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
块中增加它?
解决方案
-loop中使用的计数器变量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
-loop 转换为while
-loop,给予更多的自由度和对变量的控制。
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
推荐阅读
- django - 如何在Django中获取同一作者的书籍
- linux - 在 Linux 上写入日志的过程结束后,如何确保完整读取日志?
- angular - Angular 和 RxJS - 在所有值成功发出后发送电子邮件
- regex - 用于 terraform 的 re2 正则表达式中的多匹配
- flutter - 如何在 Flutter 中为每个不同的 SeassionCard 播放不同的视频?
- sql - 如何比较标准 SQL(BigQuery)中的两个数组?
- c++ - OpenSSL 获取确定性随机密钥
- java - 任何人都可以告诉我为什么只在调用静态变量时调用静态块
- python - 无法安装python pacakges
- javascript - Chrome 扩展 - 如何在标签未更新时检测 URL 更改?