私はVisual Studioで作業しています。 私は20のフィールドを持つint配列を持っていますし、私はfor-loopを20回実行してすべての列を記入しています。生成された乱数を挿入し、whileループはその配列に乱数が存在するかどうかを調べます。もしそうであれば、forループが終了するまで新しいランダムを作成してwhileループを再度実行します。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に設定しません。 –