IF声明未按预期工作

时间:2013-11-06 17:18:36

标签: c# visual-studio-2010

我有两个模块,带有if语句。

以下是两个代码段。

int sum;
        int input;

        singleDigit(ref firstRandom, ref secondRandom);

        Console.Write("{0} + {1} = : ", firstRandom, secondRandom);
        input = Convert.ToInt16(Console.ReadLine());

        sum = firstRandom + secondRandom;

        if (firstRandom + secondRandom == sum)
        {
            checkanswergradeoneaddition();
        }

        else
        {
            checkanswergradeoneadditionFalse();
        }`

这是后者所指的模块。请记住,我从9月2日开始参加我的编程课程。

       static void checkanswergradeoneadditionFalse()
    {
        Random rnd = new Random();
        int responseTwo = rnd.Next(0, 3);

            switch (responseTwo)
            {
                case 1:
                    Console.WriteLine("Incorrect, mush!");
                    break;
                case 2:
                    Console.WriteLine("Wrong again, Einstein");
                    break;
                default:
                    Console.WriteLine("Default");
                    break;
            }
    }

它没有按预期工作。

2 个答案:

答案 0 :(得分:4)

看看这个:

    sum = firstRandom + secondRandom;

    if (firstRandom + secondRandom == sum)
    {
        checkanswergradeoneaddition();
    }

没有意义。如果总和被分配A + B,那么A + B总是==总和。 “别的”永远不会运行。

也许它应该是

if(input==sum)

答案 1 :(得分:1)

我想我得到了你想说的话。您的第一个if语句将始终为true,因为它不会比较任何用户输入。

int sum;
        int input;

        singleDigit(ref firstRandom, ref secondRandom);

        Console.Write("{0} + {1} = : ", firstRandom, secondRandom);
        input = Convert.ToInt16(Console.ReadLine());

        sum = firstRandom + secondRandom;

        if (firstRandom + secondRandom == sum)
        {
            checkanswergradeoneaddition();
        }

        else
        {
            checkanswergradeoneadditionFalse();
        }`

尝试将其更改为:

int sum;
        int input;

        singleDigit(ref firstRandom, ref secondRandom);

        Console.Write("{0} + {1} = : ", firstRandom, secondRandom);
        input = Convert.ToInt16(Console.ReadLine());

        sum = firstRandom + secondRandom;

        // Changed the first 'if' statement to compare the users input with the sum.
        if (input == sum)
        {
            checkanswergradeoneaddition();
        }

        else
        {
            checkanswergradeoneadditionFalse();
        }`

注意第一个if语句上面的注释。