我正在使用Visual Studio。 我有一个包含20个字段的int数组,并且我有一个for循环运行20次以填充所有列。它插入生成的随机数,while循环也查看该数组中是否存在随机数,如果是,它将创建一个新的随机并再次运行while循环,依此类推,直到for循环结束。 / p>
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]);
但由于某些原因,当我运行控制台时,这段代码没有完全执行,我什么都没看到。窗口也不会关闭,它不会显示错误信息,就像错误一样。是否有时间限制或类似的东西?
答案 0 :(得分:1)
您的程序中必须有一些代码,但您还没有向我们展示,因为现在,外部for循环将在每次迭代时立即退出while循环。另一方面,如果输入数组包含0到19的所有整数,则while循环将永远不会终止。
看起来你想要实现的是Fisher Yates Shuffle。这将数组作为输入,并随机化其顺序。