我有两个模块,带有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;
}
}
它没有按预期工作。
答案 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语句上面的注释。