【发布时间】:2021-09-04 04:16:31
【问题描述】:
(我为糟糕的格式道歉)
我正在尝试制作一个随机数生成器(最小值 = 1,最大值 = 10),它会一直循环到其中一个
a) 生成一个 1(作为主要哨兵)。 b) 循环迭代 10 次(次要哨兵)而不产生 1。
我正在寻找这样的东西:
6 3 8 4 1 "5 次尝试收到一个,"
或
3 8 5 7 2 2 4 8 8 3 “从来没有收到过。”
但问题是,即使生成了 1,循环也会继续,并且“A one was never received”。消息显示。 循环如下:
while (randomNumber.Next() != 1 || loopCounter <= 10));
{
loopCounter++;
Console.WriteLine(randomNumber.Next(10));
Thread.Sleep(100);
if (randomNumber.Next() == 1)
{
Console.WriteLine($"A one was recieved in {loopCounter} attempts.")
break;
}
if (loopCounter <= 10)
{
Console.WriteLine("A one was not recieved.")
break;
}
}
给予类似的东西
1 4 6 9 7 1 3 3 1 9 “没有收到。”
【问题讨论】:
-
这里的主要问题是每次迭代调用
randomNumber.Next()三次。只调用一次,并将结果存储在变量中。
标签: c# random while-loop terminate sentinel