我有一個數組,我用6個隨機生成的數字填充。首先它會生成1到49之間的隨機數,然後根據數組中的數字進行檢查。如果發現重複,它應該再次生成一個隨機數,然後再次執行檢查。如果沒有重複,則將該數字添加到數組中。填充數組時檢查重複內容
下面的代碼:
public void populateArray()
{
for(int i = 0; i < numberLine.length; i++)
{
randomNumber = 1 + randomGen.nextInt(49);
for(int j = 0; j < i; j++)
{
if (numberLine[j] == randomNumber)
{
i--;
}
else
{
continue;
}
}
if(i >= 0)
{
numberLine[i] = randomNumber;
}
else
{
continue;
}
}
Arrays.sort(numberLine);
}
但是,由於某種原因,這仍然可以讓一個重複,雖然很少(約1 50陣列),如6 6 16 24 34 46
。但是,當我嘗試通過取出隨機數字元素並使用像30這樣的數字來重複此操作時,我無法重現結果。出了什麼問題?
它有一個潛在的無限循環,這可能不是你想要,看到我對如何避免這些答案的東西。 – soulcheck
是的,人們建議的部分,即可以循環的'j Arcadian
不是這樣。據我可以看到所有其他的解決方案先使用繪圖,測試,重複繪製相同的範圍技術。這會導致無限循環 - 繪圖範圍不會變小。你總是可能運氣不好,並且無限制地畫出相同的數字。 – soulcheck