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

时间:2017-01-06 06:19:43

标签: c# console-application

我刚开始学习C#作为我的第一个编程语言,所以我决定做一个简单的问题并回答C#console应用程序。控制台会问你一个问题,如果你做对了,它会说“正确”。过了一会儿,我把它全部搞砸了没有错误,除了它从未说过“正确”

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

感谢您的帮助!

5 个答案:

答案 0 :(得分:2)

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

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

但请记住改进代码,例如,使用int而不是byteif (answer == 31)块中的代码可以更短,等等。祝你好运。

答案 1 :(得分:0)

您必须存储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!");
    }

答案 2 :(得分:0)

试试这个。

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

答案 3 :(得分:0)

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

SELECT IF( Requester_ID = 200, Requestee_ID, Requester_ID ) AS Request FROM Requester WHERE Requester_ID = 200 OR Requestee_ID = 200

接下来使用String.Equals方法比较

检查输入是否正确

string input = Console.ReadLine ();

最后,没有必要为if(input.Equals("31"))变量创建和赋值,因为如果代码进入answerCorrect语句,答案是正确的,所以只有{{1}在里面。

答案 4 :(得分:0)

首先,我会使用int代替byte。然后,您必须将用户输入分配给变量answer。类型int提供了一个名为.Parse(string s)的方法,它尝试将从Console.ReadLine()获得的字符串转换为int。当然,如果输入类似于"hello",则会失败。以后要改进是件好事 你对bool answerCorrect的使用可能是正确的,但请记住:比较总是“返回”一个bool,所以你真的不需要额外的一个。
最后,您在Console.Read(); - 方法的最后遗漏了一条重要的行main。它有点讨厌但你的程序然后等待用户输入并且控制台窗口保持打开状态,你实际上可以看到那里有什么。

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#应用程序很好。