C#for / while循环不会被完全执行

时间:2016-12-26 21:52:55

标签: c# loops

我正在使用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]);

但由于某些原因,当我运行控制台时,这段代码没有完全执行,我什么都没看到。窗口也不会关闭,它不会显示错误信息,就像错误一样。是否有时间限制或类似的东西?

1 个答案:

答案 0 :(得分:1)

您的程序中必须有一些代码,但您还没有向我们展示,因为现在,外部for循环将在每次迭代时立即退出while循环。另一方面,如果输入数组包含0到19的所有整数,则while循环将永远不会终止。

看起来你想要实现的是Fisher Yates Shuffle。这将数组作为输入,并随机化其顺序。