我正在使用Visual Studio。 我有一個20個字段的int數組,我有一個for-loop運行20次來填寫所有列。它插入生成的隨機數,while循環也會查看該數組中是否存在隨機數,如果是,則會創建一個新隨機數並再次運行while循環,直到for循環完成。C#for/while循環不會完全執行
static int[] usedNumbers = new int[20];
public static void Show() {
for(int a = 0; a < 20; a++)
{
randomNr = Rnd.Next(0, 20);
searchRnd = true;
while (searchRnd)
{
if (usedNumbers.Contains(randomNr))
{
randomNr = Rnd.Next(0, 20);
searchRnd = true;
}
else {
searchRnd = false;
// code...
}
}
}
}
Show();
console.writeLine("{0}", usedNumbers[0]);
但由於某種原因,當我運行控制檯時,此代碼沒有完全執行,我什麼也沒看到。此外,該窗口不關閉,它不顯示錯誤消息,就像它應該出現錯誤。有沒有時間限制或類似的東西?
「我什麼也沒看到」。你期望看到什麼?該代碼不輸出任何內容。請提供[mcve]。您所顯示的代碼不完整,因此不清楚缺失的部分是錯誤還是故意遺漏 - 例如, 'usedNumbers'永遠不會被添加到,'searchRnd'永遠不會被設置爲'false'。 – kaylum
請注意,您得到的隨機數將爲0-19,因爲它是默認值,所以您的數組中已有0個。因此,您不能將* 20唯一數字*添加到數組中,只能使用19.嘗試使用'Rnd.Next(1,20)'。 –
您上面給出的代碼從不將searchRnd設置爲false。 –