array={}
size=10
math.randomseed(os.time())
for i=1,size do
array[i]=math.random(size)
if(i>1) then
for j=1,i do
if array[j]==array[i] then
i=i-1
break
end
end
end
end
for i=1,size do
print(array[i])
end
上面的代码旨在生成一个从 1 到“大小”的随机数数组,避免重复值。如果新生成的值出现在数组中的某个位置之前,我试图通过再次重复顶级“for”循环来实现这一点——通过减少它的迭代器。不知何故,它不起作用。为什么?
从循环内部修改迭代器值是不可能的吗?
数组中具有重复值的示例输出:
>lua5.1 "pairsss.lua"
2
1
10
6
5
2
5
7
7
4
>Exit code: 0