2014-03-12 53 views
1

所以我有這個項目在學校創建一個遊戲「猜數字」。我正在嘗試使用switch語句和while循環來循環DialogResult。我嘗試了很多可能性,但我進入了一個無限循環。只是想知道我是一名初學者。如果可能的話,我真的需要一些幫助。這是我的代碼。提前致謝。DialogResult Infinite Loop

 
private void btnStartTheGame_Click(object sender, EventArgs e) 
     { 
      int guessTheNumber = Convert.ToInt32(txtNumberGuess.Text); 
      DialogResult dialogResult = MessageBox.Show("Is number" + number.ToString() + " you are thinking about?", "Answer the question!", MessageBoxButtons.YesNo); 
      switch(dialogResult) 
      {

case DialogResult.No: while (dialogResult == DialogResult.No) { Random newNumberGenerator = new Random(); number = newNumberGenerator.Next(0, 101); MessageBox.Show("Is number" + number.ToString() + " you are thinking about?", "Answer the question!", MessageBoxButtons.YesNo); } break; case DialogResult.Yes: if (dialogResult == DialogResult.Yes) { MessageBox.Show("Congratulation! You guessed the number!!"); break; } break; }

回答

0

你需要下載對話框的新的結果。

int guessTheNumber = Convert.ToInt32(txtNumberGuess.Text); 
DialogResult dialogResult; 
do 
{ 
    Random newNumberGenerator = new Random(); 
    number = newNumberGenerator.Next(0, 101); 
    dialogResult = MessageBox.Show("Is number" + number.ToString() + " you are thinking about?", "Answer the question!", MessageBoxButtons.YesNo); 
} while (dialogResult == DialogResult.No); 

MessageBox.Show("Congratulation! You guessed the number!!"); 

do循環將首先執行的代碼,然後檢查該條件。這也將阻止在不同地方使用相同的代碼,這意味着相同。

+1

非常感謝!像魅力一樣工作! – MrDevo