【问题标题】:c# Program Saying Answer Is Correct Regardless Of Inputc#程序说答案是正确的,无论输入如何
【发布时间】:2016-03-01 15:53:33
【问题描述】:

程序总是说你输入的任何数字都是正确的。当您键入字符时,它会输出不正确。我不确定它为什么这样做。我是 C# 新手,所以放轻松!

   // Create a Random object to generate random numbers.
    Random randomizer = new Random();

    // for the addition problem. 
    int num1;
    int num2;
    int sum;
    int correct;
    int incorrect;

    private void play_Load(object sender, EventArgs e)
    {
        StartTheGame();

    }

    public void StartTheGame()
    {
        num1 = randomizer.Next(11);
        num2 = randomizer.Next(11);
        sum = num1 + num2;
        labelNum1.Text = num1.ToString();
        labelNum2.Text = num2.ToString();
    }

    private void labelNum1_Click(object sender, EventArgs e)
    {

    }

    private void timer1_Tick(object sender, EventArgs e)
    {

    }

    private void btnSub_Click(object sender, EventArgs e)
    {
        if (int.TryParse(txtUserAnswer.Text, out sum))
        {
            MessageBox.Show("Correct Answer!", "Correct");
            correct++;
        }
        else
        {
            MessageBox.Show("You messed up.", "Incorrect");
            incorrect++;
        }
        txtUserAnswer.Clear();
        txtUserAnswer.Focus();
        StartTheGame();

        if(correct == 5)
        {
            MessageBox.Show("Congrats! You defeated the monster.", "Next Level");
        }

        if(incorrect == 3)
        {
            MessageBox.Show("You've been defeated. Nerd.", "Loser");
            Application.Exit();
        }
    }

请帮帮我!这是为了学校,这让我很困扰!

【问题讨论】:

  • 它应该做什么?如果传递的字符串可以成功解析为 int,则 int.TryParse 的返回为 true。
  • 听起来你需要设置断点并开始调试代码也尝试设置初始化的 int's = 0 并检查 out 变量 = 的值这是基本编码

标签: c# windows parsing math addition


【解决方案1】:

您在这里所做的只是尝试解析。只要int.TryParse(txtUserAnswer.Text, out sum)的输入是整数,这个条件总是true

txtUserAnswer.Text = "1235"; //this result in true
txtUserAnswer.Text = "44"; //this result in true
txtUserAnswer.Text = "999999"; //this result in true
txtUserAnswer.Text = "123bbn"; //this result in false

您必须使用不同于sum 的变量名添加检查条件。否则,您的sum 将被用户的输入替换:

int guesssum; //declare this
.
.
if (int.TryParse(txtUserAnswer.Text, out guesssum)) //use guesssum here
{
    if (guesssum == sum){
        MessageBox.Show("Correct Answer!", "Correct");
        correct++;
    }
    else {
         //wrong, do something!
    }
}

【讨论】:

  • 很好,我没看到他在重复使用 sum。
  • 对不起各位!非常感谢!
  • @Ian 我认为他没有足够的分数来接受答案(我认为你必须至少有 15 分)。这就是我给你投票的原因,至少你会得到一些分数。
  • @Kevin 接受答案不需要任何声誉。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多