我正在尝试使用Visual C#在Visual Studio 2015社区中创建Times Table控制台应用程序,但if语句未正确评估。 我开始调试(测试)我的控制台应用程序,但在最后三个问题中没有正确评估if语句。有人可以帮忙吗?这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace xTables
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Welcome to xTables");
Console.WriteLine("In this application, you'll have to answer questions from");
Console.WriteLine("the times table up to 12");
Console.WriteLine("Good Luck!");
//Question 1
Console.WriteLine("What is 1 x 6");
string userAnswer = Console.ReadLine();
if (userAnswer == "6")
{
string message = "Correct";
Console.WriteLine(message);
}
else
{
string message = "Incorrect";
Console.WriteLine(message);
}
//Question 2
Console.WriteLine("What is 2 x 3");
Console.ReadLine();
if (userAnswer == "6")
{
string message = "Correct";
Console.WriteLine(message);
}
else
{
string message = "Incorrect";
Console.WriteLine(message);
}
//Question 3
Console.WriteLine("What is 8 x 9");
Console.ReadLine();
if (userAnswer == "72")
{
string message = "Correct";
Console.WriteLine(message);
}
else
{
string message = "Incorrect";
Console.WriteLine(message);
}
//Question 4
Console.WriteLine("What is 5 x 6");
Console.ReadLine();
if (userAnswer == "30")
{
string message = "Correct";
Console.WriteLine(message);
}
else
{
string message = "Incorrect";
Console.WriteLine(message);
}
//Question 5
Console.WriteLine("What is 4 x 6");
Console.ReadLine();
if (userAnswer == "24")
{
string message = "Correct";
Console.WriteLine(message);
}
else
{
string message = "Incorrect";
Console.WriteLine(message);
}
}
}
}
答案 0 :(得分:3)
除了第一个问题之外,你有这个:
Console.ReadLine();
当你可能想要这个时:
userAnswer = Console.ReadLine();
编辑以获得进一步说明
因为第二个问题的答案与第一个问题的答案相同,所以它似乎有效。 (你可能两次输入相同的答案。)但实际上,不仅仅是最后三个问题没有起作用;只有第一个问题才是实际做你想做的事。
答案 1 :(得分:1)
在最后三个你需要做的事情:
userAnswer = Console.ReadLine();
而不仅仅是Console.ReadLine();
答案 2 :(得分:0)
除了上面提到的答案之外,你真的不需要对消息变量使用抽象方法。
Console.WriteLine("Correct")
也可以正常工作
答案 3 :(得分:0)
您需要使用Console.ReadLine()
的返回值。
userAnswer = Console.ReadLine();
作为旁注,这是方法的绝佳选择:
HandleQuestion(1, 6);
HandleQuestion(2, 3);
HandleQuestion(8, 9);
HandleQuestion(5, 6);
HandleQuestion(4, 6);
void HandleQuestion(int operand1, int operand2)
{
Console.WriteLine("What is {0} x {1}", operand1, operand2);
string userAnswer = Console.ReadLine();
if (userAnswer == (operand1 * operand2).ToString())
Console.WriteLine("Correct");
else
Console.WriteLine("Incorrect");
}
完成上述操作后,您可以使用操作数的随机值生成问题。
答案 4 :(得分:0)
您没有将readline()返回到变量中。 猜猜你想做:userAnswer = Console.ReadLine();
答案 5 :(得分:-1)
我认为您应该使用以下内容:
if (userAnswer.Equals(6)){
// Rest of the code
}