我有麻煩驗證用戶輸入,我有以下循環肯定捕捉它,但是當循環再次啓動用戶沒有機會進入一個不同的價值,所以價值是相同的,只是創建一個無限循環。檢查文本框的循環中的有效輸入或嘗試趕上c#
private void guess_Click(object sender, EventArgs e)
{
int guessInt = 0;
bool pass = false;
int number;
while (pass == false)
{
if (guessInput.Text != "")
{
pass = Int32.TryParse(guessInput.Text, out number);
if (pass)
{
guessInt = number;
}
else
{
MessageBox.Show("You did not enter an integer, please enter a integer", "Invalid Values", MessageBoxButtons.OK, MessageBoxIcon.Error);
guessInput.Text = "";
}
}
else MessageBox.Show("You did not enter anything, please enter a integer", "Invalid Values", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
guess.Enabled = false;
next_Guess.Enabled = true;
if (guessInt == randomArray[x])
{
result.Text = ("You Win! The correct number was " + randomArray[x]);
right += 1;
correctAnswers.Text = right.ToString();
}
else
{
result.Text = ("Sorry you lose, the number is " + randomArray[x]);
wrong += 1;
incorrectAnswers.Text = wrong.ToString();
}
hintLabel.Enabled = false;
x++;
}
那麼,怎樣才能在用戶有機會重新輸入值和循環重新開始或者我應該在這裏使用一個try/catch嘗試?
你試圖制動用'中斷環路;',然後當用戶輸入一個不同的值再次開始循環。 – Writwick
@ I.am.WritZ,如果我打破循環,特別是在失敗的嘗試期間或其他部分,我不希望在循環後繼續使用無效條目。 – programmerNOOB
所以'打破'循環和'返回''空白'或者你可以維護一個'bool'來保存循環的成功/失敗。 – Writwick