[英]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.