如果 Bool 为 true,则使用 C# 不显示 WriteLine 的控制台应用程序



我刚刚开始学习C#作为我的第一门编程语言,所以我决定制作一个简单的问答C#控制台应用程序。控制台会问你一个问题,如果你答对了,它会说"正确"。过了一会儿,我让一切都正常工作,没有错误,除了它从来没有说"正确"

using System;
namespace Project
{
  class MainClass
  {
    public static void Main (string[] args)
    {
      byte answer = 0;
      Console.WriteLine ("What is 27+4?");
      Console.ReadLine ();
      if (answer == 31) 
      {
        bool answerCorrect = true;
        if (answerCorrect == true)
          Console.WriteLine ("Correct!");
      }
    }
  }
}

感谢您的帮助!

因为Console.ReadLine()读取您的输入(作为字符串),但它没有分配给您的变量answer。若要使程序正常工作,请将行更改为:

answer = byte.Parse(Console.ReadLine());

但是记得改进你的代码,比如用int代替byteif (answer == 31)块中的代码可以更短,等等。

您必须存储来自 ReadLine 的字符串返回值并对其进行解析。这样:

    byte answer = 0;
    Console.WriteLine("What is 27+4?");
    string s = Console.ReadLine();
    if (byte.TryParse(s, out answer) && answer == 31)
    {
        bool answerCorrect = true;
        if (answerCorrect == true)
            Console.WriteLine("Correct!");
    }

试试这个。

using System;
namespace Project
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            byte answer = 0;
            Console.WriteLine ("What is 27+4?");
            answer = byte.Parse(Console.ReadLine ());
            if (answer == 31) 
            {
                bool answerCorrect = true;
                    if (answerCorrect == true)
                        Console.WriteLine ("Correct!");
            }
        }
    }
}

Console.Readline() 返回用户输入的字符串值,因此首先捕获该输入。

string input = Console.ReadLine ();

接下来,使用 String.Equals 方法检查输入是否正确

进行比较

if(input.Equals("31"))

最后,没有必要为answerCorrect变量创建和赋值,因为如果代码进入if语句,答案是正确的,所以只需Console.WriteLine ("Correct!")里面。

首先我会使用 int 而不是 byte 。然后,您必须将用户输入分配给变量answer。类型 int 提供了一个名为 .Parse(string s) 的方法,该方法尝试将你从 Console.ReadLine() 获得的字符串转换为 int。当然,如果输入类似于 "hello" .这是一件好事,以后可以改进。
你对bool answerCorrect的使用可能是正确的,但请记住:比较总是"返回"一个布尔值,所以你真的不需要额外的布尔值。
最后,您在main方法的最后缺少Console.Read();的重要行。这有点作弊,但您的程序会等待用户输入,控制台窗口保持打开状态,您实际上可以看到其中的内容。

static void Main(string[] args)
{
    int answer = 0;
    Console.WriteLine("What is 27 + 4?");
    answer = int.Parse(Console.ReadLine());
    if (answer == 31)
    {
        Console.WriteLine("Correct!");
    }
    else //I added this part for beauty reasons
    {
        Console.WriteLine("Incorrect!");
    }
    Console.Read();
}

我建议您查看运行程序while,只要用户给出错误的答案,并且try..catch接受"hello"作为输入,但以不同的方式处理它,以进一步改进。
虽然对于您的第一个 C# 应用程序来说,干得不错。

最新更新