随机决策
本文关键字:决策 随机 | 更新日期: 2023-09-27 18:02:24
我正在尝试创建一个随机决策器。我想让我的程序选择一个随机数然后把它应用到if中。像这样-
Random random = new Random();
random.next(0, 10).ToString());
if (random == 1)
{
messagebox.show("Good Joke")
}
else if(random == 2)
{
messagebox.show("Terrible Joke")
}
等等……
这只是初始化Random
,并使用一个数字范围调用Next
方法。
原代码问题:
- 您正在使用
next
而不是Next
,C#
是区分大小写的。 - 没有存储
Next
操作的结果。 -
ToString
是多余的,不需要强制转换为string
。
代码:
var random = new Random();
int number = random.Next(0, 10);
// If you gonna use alot of conditions like this, a better solution will be to use: switch
if (number == 1)
{
// Do Something
}
else if (number == 2)
{
// Do Something else
}
。NET Fiddle Link
有几种方法可以做到这一点。以下是其中的三个。
第一种方法是创建消息数组。
string[] messages = new string[]
{
"Good Joke",
"Terrible Joke"
};
// ...
MessageBox.Show(messages[random.Next(messages.Length)]);
第二种方法是使用字典,这样你可以在运行时轻松地添加/删除条目。请确保键与索引匹配。
Dictionary<int,string> messages = new Dictionary<int,string>()
{
{ 0, "Good Joke" }
{ 1, "Terrible Joke" }
};
// ...
MessageBox.Show(messages[random.Next(messages.Count)]);
最后你可以使用一个switch语句。
string msg = string.Empty;
switch (random.Next(2)) // The amount of cases ...
{
case 0: msg = "Good Joke"; break;
case 1: msg = "Terrible Joke"; break;
}
MessageBox.Show(msg);
您必须存储random的输出。接下来是这样的变量。
Random random = new Random();
var val = random.Next(0, 10);
if (val == 1)
{
MessageBox.Show("Good Joke");
}
else if(val == 2)
{
MessageBox.Show("Terrible Joke");
}