Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写If语句时C#中出现未知错误_C#_If Statement - Fatal编程技术网

编写If语句时C#中出现未知错误

编写If语句时C#中出现未知错误,c#,if-statement,C#,If Statement,我试图用C#编写一个If语句,要求用户输入年龄,程序打印年龄,如果用户有资格投票,年龄限制为18岁 在Visual Studio中运行代码时没有错误,但在我进行练习的平台上,我打印了一个错误: 输出不正确:您的程序打印了“18”,但应该打印了“18” 如果您能指出错误(如果有),我们将不胜感激 static void Main(字符串[]args) { 智力年龄; 控制台。写“请输入您的年龄:”; age=Convert.ToInt32(Console.ReadLine()); 控制台。写入(年

我试图用C#编写一个If语句,要求用户输入年龄,程序打印年龄,如果用户有资格投票,年龄限制为18岁

在Visual Studio中运行代码时没有错误,但在我进行练习的平台上,我打印了一个错误:

输出不正确:您的程序打印了“18”,但应该打印了“18”

如果您能指出错误(如果有),我们将不胜感激

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}");
 }