简体   繁体   中英

Generate Random Number

I'm trying to generate random numbers depending on the user Input. So if the user inputs 10 then I want to generate 10 random numbers.I'm getting the user input from a textbox.

   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;
                //}
    }

Try this to genearate random numbers:

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

If your are triggering this method with a button don't forget to clear your listbox before generating new randnubers.

Your while loops stops when count is different from UserNumber, so since you initialize count = 1 you need to have UserNumber = 1 if you want the code in the while to be executed.

So, you need to fix the while condition:

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;
            //}
}

That way the code inside the while will stop being executed when UserNumber is greater than count, which is what you are looking for.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM