C# 获取用户输入并输出为布尔值

C# Getting user input and outputting to boolean

提问人:DP3Ton 提问时间:2/18/2021 最后编辑:Olivier Jacot-DescombesDP3Ton 更新时间:2/18/2021 访问量:2322

问:

我目前在 C# 新兵训练营。我很难把这些放在一起。任务是为一家保险公司创建一个控制台应用,该应用会询问三个问题。

  1. 年龄,必须大于 15 岁,
  2. 任何超速罚单,必须为 3 张或更少,并且
  3. 酒后驾车,必须回答“假”。然后
  4. 合格?答案为真/假。

从技术上讲,我不应该在代码中使用“if”语句,因为我们还没有在 C# 课程中介绍“if”语句,所以检查所有 3 个用户输入以打印出一个真/假答案应该是一个基本方程式。我在最后将方程式放在一起以检查所有三个并输出真/假答案时遇到了问题。这是我在这里的第一篇文章,所以,如果我没有提供适当的信息,我深表歉意。任何帮助将不胜感激。

namespace BooleanLogic
{
    class Program
    {
        static void Main(string[] args)
        {
            int age = 15, speed = 3;
            bool DUI = false;

            Console.WriteLine("Welcome to TTA Car Insurance. \nYou will be asked a few questions to determine if you qualify. \n");

            Console.WriteLine("What is your age?");
            age = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Have you ever had a DUI? \nPlease enter true or false.");
            DUI = Convert.ToBoolean(Console.ReadLine());

            Console.WriteLine("How many speeding tickets do you have?");
            speed = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Qualified?");
            

            Console.ReadLine();
        }
    }
}
C# 逻辑布尔 表达式

评论

2赞 devlin carnate 2/18/2021
请编辑您的帖子并澄清您的问题。您遇到的问题是什么?
1赞 001 2/18/2021
使用逻辑 AND:Console.WriteLine(age > 15 && !DUI && speed <= 3)
0赞 Flydog57 2/18/2021
@Olivier的回答很好。下一步,请考虑创建一个类,该类将这三个值作为构造函数参数,并将它们公开为只读属性。抵制将决策逻辑放在该类中的诱惑。相反,创建一个类,该类使用一个 Candidate,读取其属性并返回布尔决策CandidateDecisionstaticDecide

答:

1赞 Olivier Jacot-Descombes 2/18/2021 #1

您可以在布尔表达式中测试条件,并将结果直接写入控制台。

Console.WriteLine(age > 15 && speed <= 3 && !DUI);

这将打印“true”或“false”。

通常,人们认为布尔表达式必须出现在 if 或 while 语句等中。但布尔表达式是类似于数字(算术)表达式的表达式,可以以相同的方式使用。它们不是返回一个数字,而是返回一个布尔值,但这个值可以分配给变量、打印等。

请注意,您不需要初始化变量,因为您永远不会使用这些值,并且以后会覆盖它们。您还可以声明首次分配值的变量:

int age = Convert.ToInt32(Console.ReadLine());

但是,为条件引入常量是有意义的

const int MinimumAge = 16;
const int MaximumSpeed = 3;
const bool RequiredDUI = false;

然后测试

bool result = age >= MinimumAge  && speed <= MaximumSpeed  && DUI == RequiredDUI;

这使得更改条件变得更加容易,并使布尔表达式可以自我解释。

评论

0赞 DP3Ton 2/18/2021
感谢您的快速回复。效果完美。
1赞 DP3Ton 2/18/2021
感谢您对此进行更多详细说明。我似乎正朝着正确的方向前进,您的解释帮助我获得了更好的理解。