Sorting 当我自己尝试对一个表进行排序时,我一直在比较number和nil
这不管用!最初的想法是打印声明为“taula”的表,但在函数organizeArray()中,if有一个问题,它说当我声明了j和I变量时,我将一个数字与一个nil值进行比较。我需要帮助。当你在洗牌数组时,你引用的是Sorting 当我自己尝试对一个表进行排序时,我一直在比较number和nil,sorting,lua,numbers,compare,null,Sorting,Lua,Numbers,Compare,Null,这不管用!最初的想法是打印声明为“taula”的表,但在函数organizeArray()中,if有一个问题,它说当我声明了j和I变量时,我将一个数字与一个nil值进行比较。我需要帮助。当你在洗牌数组时,你引用的是tala[tmp],而不是tmp(在第27行)。这就是导致错误的原因 几点建议: 你什么都用globals。这可能会在以后全局碰撞时引起头痛(即tmp可能被设置为某个值,您可以使用它做一些事情)。见: 使用randomNumber()会使代码有点模糊,因为randomNumber只是
tala[tmp]
,而不是tmp
(在第27行)。这就是导致错误的原因
几点建议:
- 你什么都用globals。这可能会在以后全局碰撞时引起头痛(即tmp可能被设置为某个值,您可以使用它做一些事情)。见:
- 使用
会使代码有点模糊,因为randomNumber只是randomNumber()
的别名math.random(100)
- Lua从
开始,而不是1
。您可以从0
开始,但这只是需要记住的一点<代码>#表将不计算索引0
0
- 当提出问题时,请给出完整的错误消息——这样我们就可以查看代码,而无需自己运行:)
- 您可以在代码中放入
,以便查看发生了什么。这会帮你找到虫子,因为你知道发生了什么print(x)
taula = {};
function randomNumber()
return math.random(100);
end
function startArray()
for x=0, 10 do
taula[x]=randomNumber();
end
end
function printArray()
for i=0,#taula do
print(taula[i]);
end
end
function organizeArray()
for i=0,#taula do
for j=1,#taula do
if taula[i]>taula[j] then
tmp = taula[j];
taula[j]=taula[i];
taula[i]=taula[tmp];
end
end
end
end
startArray()
organizeArray()
printArray()