这是循环:
array={0x, 0y, 1x, 1y}
for i, v in ipairs(array) do
if (i%2)==0 then
array[i]=v+valuex
else
array[i]=v+valuey
end
end
我认为应该做的是遍历数组,如果数组变量的位置是对,则添加变量'valuex',如果不是,则添加'valuey':array [i]是位置,我添加将'valuex / y'更改为'v'值,但最终没有任何结果。
另一方面,此代码有效,这是我要使循环实现的目的:
0x=0x+valuex
1x=1x+valuex
0y=0y+valuey
1y=1y+valuey
我真的无法理解循环无法执行此操作的原因,但是与此同时,您已经猜到了,我是lua和一般编程的初学者,所以我想谢谢你能帮我一下。 谢谢。
答案 0 :(得分:1)
假设您在评论中声明0x
等。等实际上是变量,您的代码永远不会正常工作。
变量不是值;他们是变量。变量 store 值,但它们本身不是值。
创建数组时,将这些变量内部的值复制到了数组中。这些数组条目已被修改,但是数组条目与它们从中获取值的位置之间没有关联。
如果要自己操作变量,则它们必须是某些表(也许是全局表)的一部分,数组索引必须是这些值的字符串名称,并且修改函数必须使用v
从表中访问变量。假设您的“ 0x
”变量是全局表中的条目,则代码将如下所示:
array={"0x", "0y", "1x", "1y"} --Storing string names of the variables.
for i, v in ipairs(array) do
if (i % 2) == 0 then
_G[v] = _G[v] + valuex
else
_G[v] = _G[v] + valuey
end
end