【问题标题】:Making Decisions using Random [closed]使用随机做出决策[关闭]
【发布时间】:2015-09-30 06:18:41
【问题描述】:

我正在尝试创建一个随机选择器。我希望我的程序选择一个随机数,然后将其应用于 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")
}

等等……

有人可以帮忙吗。

【问题讨论】:

  • 首先对随机实例使用静态字段。其次,您可以使用 switch 语句,其中每个案例代表结果。 Tbh 不太清楚你的问题是什么。
  • 我想做的是选择一个随机数。然后根据随机数,我希望 if/else 语句显示某个消息框。
  • 始终避免使用静态字段。
  • @HenkHolterman 你能告诉我们为什么吗?静态字段并不总是不好的。

标签: c# if-statement random generator


【解决方案1】:

这只是初始化Random,并使用一系列数字调用Next 方法。

原始代码问题:

  1. 您使用的是next 而不是NextC# 区分大小写。
  2. 您没有存储Next 操作的结果。
  3. 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

【讨论】:

  • 谢谢。与我在其他网站上看到的其他一些方法相比,它工作得很好,也更容易。
  • @Sachin,Bauss 给了你一个很好的例子,尤其是第二个和Dictionary,如果你开始感到困惑,请使用我的,否则我建议你使用 Bauss 的第二个例子。无论如何,请随时 UpVote\Accept 对您有帮助的答案。
【解决方案2】:

有几种方法可以做到这一点。以下是其中三个。

第一种方法是创建消息数组。

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);

【讨论】:

    【解决方案3】:

    您必须将 random.Next 的输出存储在这样的变量中。

    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");
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2012-12-10
      • 2015-09-03
      • 1970-01-01
      • 2021-07-13
      • 2018-08-03
      相关资源
      最近更新 更多