【问题标题】:Addition Tutor Program doesnt work properly ***read description***添加导师计划无法正常工作***阅读说明***
【发布时间】: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


【解决方案1】:
correctAnswer = Convert.ToInt32("" + numberLabel1.Text + numberLabel2.Text);

您正在“连接”两个数字。喜欢"1" + "2" = "12"

您需要在添加它们之前将它们解析为int

correctAnswer = int.Parse(numberLabel1.Text) + int.Parse(numberLabel2.Text);

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
相关资源
最近更新 更多