首页 > 解决方案 > 编写 If 语句时 C# 中的未知错误

问题描述

我正在尝试在 C# 中编写一个 If 语句,要求用户输入年龄,程序会打印年龄以及用户是否有资格投票,其中年龄限制为 18 岁。

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

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

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

static void Main(string[] args)
{
    int age;
    Console.Write("Please input your age: ");
    age = Convert.ToInt32(Console.ReadLine());
    Console.Write(age);
    Console.Write("\n");

    if (age < 18)
    {
        Console.Write("You cannot cast your vote!");
    }
    else
        Console.Write("You can cast your vote!");
    {

    }
}

标签: c#if-statement

解决方案


我认为错误与您的代码无关,它可能与评估答案的平台有关。

也就是说,有几点建议:

else 后面的括号可以去掉,或者代码需要在括号之间移动。

这 2 行:

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图所示:

控制台输出

这也会给你输出Expected 18, you enter 18


推荐阅读