编写If语句时C#中出现未知错误
我试图用C#编写一个If语句,要求用户输入年龄,程序打印年龄,如果用户有资格投票,年龄限制为18岁 在Visual Studio中运行代码时没有错误,但在我进行练习的平台上,我打印了一个错误: 输出不正确:您的程序打印了“18”,但应该打印了“18” 如果您能指出错误(如果有),我们将不胜感激编写If语句时C#中出现未知错误,c#,if-statement,C#,If Statement,我试图用C#编写一个If语句,要求用户输入年龄,程序打印年龄,如果用户有资格投票,年龄限制为18岁 在Visual Studio中运行代码时没有错误,但在我进行练习的平台上,我打印了一个错误: 输出不正确:您的程序打印了“18”,但应该打印了“18” 如果您能指出错误(如果有),我们将不胜感激 static void Main(字符串[]args) { 智力年龄; 控制台。写“请输入您的年龄:”; age=Convert.ToInt32(Console.ReadLine()); 控制台。写入(年
static void Main(字符串[]args)
{
智力年龄;
控制台。写“请输入您的年龄:”;
age=Convert.ToInt32(Console.ReadLine());
控制台。写入(年龄);
控制台。写入(“\n”);
if(年龄<18岁)
{
控制台。写“你不能投票!”;
}
其他的
控制台。写“你可以投票!”;
{
}
}
我认为错误不在于您的代码,可能是平台在评估答案
也就是说,有几个要点:
可以删除else后面的括号,或者需要在括号之间移动代码
这两条线:
Console.Write(age);
Console.Write("\n");
可更改为:
Console.WriteLine(age);
或者,该行:
Console.Write("\n");
可以是:
Console.Write("\r\n");
错误可能是由正在评估答案的平台造成的。(在线?)
我不知道这些平台到底是如何工作的,但如果您使用下面的代码:
TextReader tr = Console.In;
char[] buffer = new char[4];
tr.Read(buffer, 0, 4);
string consoleOutput = new string(buffer);
if (consoleOutput != 18.ToString())
{
Console.WriteLine($"Expected 18, you entered {consoleOutput}");
}
输入18时,结果返回为18/r/n
,如图所示:
这也会给你预期的输出18,你输入了18,听起来“你做练习的平台”是这里的关键信息。他们可能期望的是
\r\n
而不是\n
-您是否有任何理由明确地编写新行而不是仅仅使用控制台。开始时使用WriteLine
?请查看else后面的括号。您不是想封装console.write语句吗?谢谢您的建议@Jon,我用console.WriteLine
替换了\n
,看起来好多了。@YigalB,谢谢,这是一个错误。
TextReader tr = Console.In;
char[] buffer = new char[4];
tr.Read(buffer, 0, 4);
string consoleOutput = new string(buffer);
if (consoleOutput != 18.ToString())
{
Console.WriteLine($"Expected 18, you entered {consoleOutput}");
}