繁体   English   中英

IF语句未按预期工作

[英]IF statement isn't working as intended

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

它没有按预期工作。

看这个:

    sum = firstRandom + secondRandom;

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

这个不成立。 如果将总和分配为A + B,则A + B将始终==总和。 “其他”将永远不会运行。

也许应该是

if(input==sum)

我想我明白您要说的话。 您的fir 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语句上方的注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM