2017-04-25 70 views
-2

我的應用程序應該得到用戶輸入以及重複次數。爲什麼我的while循環沒有按照我的輸入說多少次?

驗證結果爲肯定數據後,應在列表框中顯示結果。

結果應該是進入的代表短語編號。

我知道我需要使用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"); 
    } 
+1

請使用更好標題! https://stackoverflow.com/help/how-to-ask – Bambuk

回答

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

如何添加(Numberofreps--;)會影響代碼?另外,如果我試圖顯示循環計數,是否需要一個do-while或可以添加?請原諒我缺乏格式化我是新手,仍然熟悉格式。 – Dez

+0

'Numberofreps - ;'是寫'Numberofreps = Numberofreps - 1'的簡短方式。不改變循環計數器的值,你的循環是無限的。如果你想顯示循環計數,那麼也許德米特里的答案更好 - 因爲它將從0開始計數,而不是從「Numberofreps」開始計數。 –

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; 
     } 
相關問題