生成随机数

本文关键字:随机数 | 更新日期: 2023-09-27 18:07:23

我试图根据用户输入生成随机数。如果用户输入10,那么我想生成10个随机数。我正在从文本框中获取用户输入。

   private void GenerateRandomNumber()
            {
                int count = 1;
                //Int32.TryParse(GeneratetextBox.Text, out UserNumber);
                UserNumber = Convert.ToInt32(GeneratetextBox.Text);
                ///creates random object to produce random values 
                Random randomNumbers = new Random();
                while (count == UserNumber)
                {
                    //UserNumber = randomNumbers.Next(100);
                    listBox.Items.Add(randomNumbers.Next(100));
                    count = count + 1;
                }
                //for ( count = UserNumber; count == UserNumber; count++)
                //{
                //    UserNumber = randomNumbers.Next(100);
                //    listBox.Items.Add(randomNumbers.Next(100));
                //    count = count + 1;
                //}
    }

生成随机数

试试生成随机数:

        private void GenerateRandomNumber()
        {                
            int userNumber= Convert.ToInt32(GeneratetextBox.Text);
            Random randomNumbers = new Random();
             // loop until i is not les than userNumber
            for (int i = 0; i < userNumber; i++){  
                  // generate random number and add it to the list.
                  int randNumber= randomNumbers.Next(100);
                  listBox.Items.Add(randNumber);
            }
          }
          private void button1_Click(object sender, EventArgs e)
          {
             // clear listbox before generating new numbers
             listBox.Items.Clear();
             GenerateRandomNumber();
           }

如果你用一个按钮触发这个方法,不要忘记在生成新的随机数之前清除你的列表框。

当count与UserNumber不同时,while循环停止,因此由于您初始化了count = 1,因此如果您希望while中的代码执行,则需要让UserNumber = 1。

所以,你需要修正while条件:

private void GenerateRandomNumber(){

            int count = 1;
            //Int32.TryParse(GeneratetextBox.Text, out UserNumber);
            UserNumber = Convert.ToInt32(GeneratetextBox.Text);
            ///creates random object to produce random values 
            Random randomNumbers = new Random();
            while (count <= UserNumber)
            {
                //UserNumber = randomNumbers.Next(100);
                listBox.Items.Add(randomNumbers.Next(100));
                count = count + 1;
            }
            //for ( count = UserNumber; count == UserNumber; count++)
            //{
            //    UserNumber = randomNumbers.Next(100);
            //    listBox.Items.Add(randomNumbers.Next(100));
            //    count = count + 1;
            //}
}

这样,当UserNumber大于count时,while内的代码将停止执行,这正是您正在寻找的。