【发布时间】:2017-10-05 16:42:09
【问题描述】:
下面是一个名为“Addition Tutor”的程序的代码。程序生成 2 个随机数并要求用户回答这两个随机数的相加。问题是每次我正确回答问题时,消息框都会返回 else 操作(“不正确”)。我的程序有什么问题?请保持答案简单,我的编程知识和术语非常有限。非常感谢您的帮助!
namespace Addition_Tutor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Create a random object.
Random rand = new Random();
{
//Declare an Integer
int number1;
//Generate a random integer and assign it to number1
number1 = rand.Next(400) + 100;
//Send random number to numberlabel1
numberLabel1.Text = Convert.ToString(number1);
}
{
//Declare an Int Variable
int number2;
//Generate a random integer and assign it to number2
number2 = rand.Next(400) + 100;
//Send random number to numberlabel2
numberLabel2.Text = Convert.ToString(number2);
}
}
private void checkButton_Click(object sender, EventArgs e)
{
//declare an Int Variable for Correct Answer
int correctAnswer;
correctAnswer = Convert.ToInt32("" + numberLabel1.Text + numberLabel2.Text);
//check to see if the userAnswer and correctAnswer match.
int userAnswer;
userAnswer = Convert.ToInt32(answerTextBox.Text);
if (userAnswer == correctAnswer)
{
MessageBox.Show("Your Answer is Correct");
}
else
{
MessageBox.Show("Your Answer is Incorrect");
}
}
private void clearButton_Click(object sender, EventArgs e)
{
//clear the labels and textboxes.
numberLabel1.Text = "";
numberLabel2.Text = "";
answerTextBox.Text = "";
}
private void exitButton_Click(object sender, EventArgs e)
{
//close the form
this.Close();
}
}
}
【问题讨论】:
-
那么,您自己诊断问题的进展如何?您是否在调试器中运行过它?我很确定你会这样找到问题的。 (提示:你期望
Convert.ToInt32(""+"10"+"5")返回什么?不是 15...) -
(请注意,花在学习如何诊断问题上的时间会付出很多倍的代价。我建议您对自己做出承诺,弄清楚如何做到这一点 - 您将节省大量时间从长远来看。)
-
这是我自主动学习编码以来创建的第 8 个程序。我在代码中遇到的所有问题都是通过对本论坛中类似问题的研究得到诊断的。 Convert.ToInt32(""+ "10" + "5") 这段代码是从另一个问题中使用的。
-
当然,您是初学者 - 但这并不意味着现在学习使用调试器或其他诊断工具还为时过早。如果您在调试器中单步执行了代码,您会发现是
correctAnswer的计算导致了问题,而其他一切都无关紧要。然后,您希望查看您传递给Convert.ToInt32的内容,并意识到您不会通过将“105”解析为整数来将 10 和 5 相加。 -
下次遇到问题一定要使用,谢谢
标签: c# if-statement add equals