如何在 C# 中使其工作随机数

本文关键字:工作 随机数 | 更新日期: 2023-09-27 17:55:29

我在生成随机数时遇到问题。我不知道我该如何写它,以及为什么当我添加 if 语句时它不起作用。感谢您的帮助。

static void Main(string[] args)
    {
        int first= 1;
        int second = 2;
        {
            Random r_first = new System Random();
            r_first = r_first.next(-100, 0);
            Console.WriteLine(first); // I would like to see the result 
            Random r_second = new System Random();
            second = r_second.next(-100, 0);
            Console.WriteLine(second); // I would like to see the result 
            if (first > second)
            {
                Console.WriteLine("first is bigger");
            }
            else
            {
                Console.WriteLine("first is smaller");
            }
        }
    }
}

如何在 C# 中使其工作随机数

你的代码中有多个错误

  1. 不要创建新的Random实例来获取新的随机数。大多数情况下,它会给出相同的值。因此,您需要 Random 类的单个实例。
  2. 方法名称Next而不是next
  3. System.Random(),而不是System Random()

    static void Main(string[] args)
    {
        int first = 1;
        int second = 2;
        {
            Random randomIns = new System.Random();
            first = randomIns.Next(-100, 0);
            Console.WriteLine(first); // I would like to see the result 
            second = randomIns.Next(-100, 0);
            Console.WriteLine(second); // I would like to see the result 
            if (first > second)
            {
                Console.WriteLine("first is bigger");
            }
            else
            {
                Console.WriteLine("first is smaller");
            }
        }
    }
    

问题 1:您正在将随机整数值分配给Random类引用变量 r_first

替换它:

r_first = r_first.next(-100, 0);

有了这个:

first = r_first.Next(-100, 0);

问题2:

如果不是拼写错误,则应使用System.Random();而不是System Random();

1)您不必为多次调用它而创建新的随机。

2)你不能给随机方法赋值(rng = rng。Next() - 你不能这样做,你必须定义新变量来保存 rng 方法的结果)

3) Random 是 System 命名空间的一部分,因此简单地调用 System.Random()

试试这个:

static void Main(string[] args)
    {
        int first = 1;
        int second = 2;
        Random rng = new Random();
        first = rng.Next(-100, 0);
        Console.WriteLine(first); // I would like to see the result 
        second = rng.Next(-100, 0);
        Console.WriteLine(second); // I would like to see the result 
        if (first > second)
        {
            Console.WriteLine("first is bigger");
        }
        else
        {
            Console.WriteLine("first is smaller");
        }
    }