为什么我的while循环不会像我输入的那样重复多次?

时间:2017-04-25 06:50:25

标签: c# while-loop

我的应用程序应该获得用户输入以及一些重复。

在验证为正数据后,它应在列表框中显示结果。

结果应该是输入的代表的短语#。

我知道我需要使用while循环,但我哪里出错了。以下是我到目前为止:

private void btnDisplay_Click(object sender, EventArgs e)
{
    // Delcare variables 
    int Numberofreps;
    int Count = 1;
    string Phrase = txtPhrase.Text;

    //Get the inputs 
    if (int.TryParse(txtNumberofreps.Text, out Numberofreps))
    {
        if (txtPhrase.Text == Phrase)
        {
            lstDisplay.Items.Add(txtPhrase.Text);
        }

        //Check to make sure its a positive value
        while(Count >= 1)
        {
            //Display the number of reps
            lstDisplay.Items.Add(txtPhrase.Text);    
        }           
    }
    else 
    {
        MessageBox.Show("Not a Positive Value");
    }

2 个答案:

答案 0 :(得分:0)

你有无限循环,因为你没有改变里面Count的值。 我可能会将代码更改为:

private void btnDisplay_Click(object sender, EventArgs e)
{
    // Delcare variables 
    int Numberofreps;

    //Get the inputs 
    if (int.TryParse(txtNumberofreps.Text, out Numberofreps) && Numberofreps > 0)
    // Note I've added a check that the Numberofreps is a positive integer.
    {
        while(Numberofreps > 0)
        {
            //Display the number of reps
            lstDisplay.Items.Add(txtPhrase.Text);
            Numberofreps--; // Note this line.
        }           
    }
    else 
    {
        MessageBox.Show("Not a Positive Integer");
    }
}

答案 1 :(得分:0)

我建议使用for循环代替while

   private void btnDisplay_Click(object sender, EventArgs e) {
     int Numberofreps;

     if (!int.TryParse(txtNumberofreps.Text, out Numberofreps)) 
       MessageBox.Show("Not a integer Value");
     else if (Numberofreps <= 0)
       MessageBox.Show("Not a Positive Value");
     else {
       for (int i = 0; i < Numberofreps; ++i)
         lstDisplay.Items.Add(txtPhrase.Text);
     }   
   }

如果你坚持while循环:

      int i = 0;

      while (i < Numberofreps) {
        lstDisplay.Items.Add(txtPhrase.Text);

        i += 1;
      }