【问题标题】:A method using Boolean expression使用布尔表达式的方法
【发布时间】:2014-04-21 10:12:26
【问题描述】:

用户必须选择 2 个数字来 1) 加 2) 减 3) 乘 4) 除 5) 退出。 用户输入的 2 数字可以是 0-9、小数点或减号,其他任何内容都是错误的。我需要创建一个方法来检查用户输入,使用 true 或 false 布尔表达式。我在布尔表达式中放了什么

Console.Write("Enter Number 1: ", num1);
num1 = Convert.ToDouble(Console.ReadLine());

Console.Write("Enter Number 2: ", num2);
num2 = Convert.ToDouble(Console.ReadLine());

if (true)
{

}

switch (input)
{
    case 1:
        Console.WriteLine("\tResults: {0}", Add(num1, num2));
        break;
    case 2:
        Console.WriteLine("\tResults: {0}", Subtract(num1, num2));
        break;
    case 3:
        Console.WriteLine("\tResults: {0}", Multiply(num1, num2));
        break;
    case 4:
        Console.WriteLine("\tResults: {0}", Divide(num1, num2));
        break;
    default:

        //Console.WriteLine("Invalid Menu Selection.\t Try Again");
        //Console.ReadLine();
        return;
}

Console.WriteLine("Press any key...");
Console.ReadKey();
Console.Clear();

【问题讨论】:

    标签: c# methods boolean


    【解决方案1】:

    如果我理解正确,您可以使用Double.TryParse() 来检查用户输入是否是可转换为双字符串的有效输入,以及实际转换它(如果输入有效)。例如:

    double num1 = 0;
    bool isNum1Valid = Double.TryParse(Console.ReadLine(), out num1);
    

    实际上,这个问题需要更多的上下文,例如,您希望如何使用该函数以及它的签名(参数类型和返回类型)。并展示您到目前为止尝试过的内容。

    【讨论】:

    • 根据问题,“1e1”字符串是错误的。但是您的代码被解释为有效的。
    【解决方案2】:

    检查输入是否只有数字:

    Regex r = new Regex(@"^[-.]?[\d]{1,}[.]{0,1}[\d]{0,}$");
    if(r.IsMatch(num1) && r.IsMatch(num2) && num1.Count(j => j == '.') < 2 && num2.Count(j => j == '.') < 2)
    {
    //Do something
    } 
    

    如果两个数字都只是数字,那么使用你的 switch 语句。

    如果输入包含字母,则向用户显示一些消息,告诉用户只有数字可用

    【讨论】:

    • "-0.9" 是根据问题的有效输入。您的代码被解释为错误的。
    • 另一个问题:“.2”和“2”。是 C# 的有效输入。 P.S:+ 是 {1,} 量词的简写。
    • 好兄弟! “.2”和“2”。固定
    • 当前正则表达式允许 2.2.2 作为有效输入 :-)
    • 还有一个问题:当前的正则表达式允许“a3a”作为有效输入
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 2016-06-30
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多