0

我有两个模块,带有一个 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;
            }
    }

它没有按预期工作。

4

2 回答 2

4

看这个:

    sum = firstRandom + secondRandom;

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

这没有道理。如果 sum 分配给 A+B,那么 A+B 将始终 == sum。“else”永远不会运行。

也许它应该是

if(input==sum)
于 2013-11-06T17:32:11.520 回答
1

我想我明白你想说的话。您的第一个 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();
        }`

尝试将其更改为:

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 语句上方的注释。

于 2013-11-06T17:43:13.473 回答