루아 : 루프 내부에서 반복자가 감소하고 있습니까?
문제
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에서 '크기'까지 난수의 배열을 생성하는 것을 의미했습니다.나는 재판을 줄이기 전에 새로 생성 된 값이 어딘가에있는 경우에 최상위 레벨 '을 반복하여'루프의 루프를 반복하여 '루프를 반복 해려고 노력했습니다.어떻게 든 작동하지 않습니다.왜?
루프 내부에서 반복자 값을 수정할 수 없습니까?
배열 값을 반복하는 값으로 출력 예 :
>lua5.1 "pairsss.lua"
2
1
10
6
5
2
5
7
7
4
>Exit code: 0
. 해결책
문제에 대한 해결 방법은 임의의 반복을 루아에서 테이블을 채우기 위해
§2.4.5 - 진술
세 가지 제어 표현식은 루프가 시작되기 전에 한 번만 평가됩니다.그들은 모두 숫자가 발생해야합니다.
i
루프에서 for
값을 변경하는 방법에 관계없이 반복이 수행되는 방법에는 영향을 미치지 않습니다.
제휴하지 않습니다 StackOverflow