C#if语句比较数字

时间:2017-10-26 13:54:14

标签: c# if-statement numbers comparison

我对编程非常陌生并且必须编写一些编程来测试一个数字是否小于或大于500,2000和5000.现在我写了这个但它总是需要第一个其他语句,即使数字大于5000它表示数字小于500.有谁知道为什么?感谢我得到的每一个帮助。 :)

以下是代码:

double rebe, fuenfh = 500.00, zweit = 2000.00, fuenft = 5000.00;
    //zweiPro = 2.00, fuenfPro = 5.00, zehnPro = 10.00;

Console.WriteLine("How big is the number? Wie groß war Ihr Rechnungsbetrag? ");
rebe = Console.Read();

if (rebe >= fuenfh)
{
    if (rebe >= zweit)
    {
        if (rebe >= fuenft)
        {
            Console.WriteLine("bigger or same as 5000");
            Console.ReadLine();
            Console.Read();
        }

        else
        {
            Console.WriteLine("bigger or same as 2000 but smaller than 5000 // Groesser gleich als 2000 aber kleiner als 5000");
            Console.ReadLine();
            Console.Read();
        }
    }

    else
    {
        Console.WriteLine("bigger or same as 500 but smaller than 2000 // Groesser gleich 500 aber kleiner als 2000");
        Console.ReadLine();
        Console.Read();
    }
}
else
{
    Console.WriteLine("smaller than 500 // Leider gibt es keinen Rabatt. :(");
    Console.ReadLine();
    Console.Read();
}

3 个答案:

答案 0 :(得分:2)

将您的输入从rebe = Console.Read();更改为rebe = Convert.ToDouble( Console.ReadLine());。我认为你没有提到你期望的价值。

答案 1 :(得分:1)

这就是它的工作方式,将输入转换为double(如mnield所示),但也使代码更易于阅读。请注意当您反转条件时代码会缩短多少。

Console.WriteLine("How big is the number?");
double amount = Convert.ToDouble(Console.Readline());

if (amount < 500.0)
{
    Console.WriteLine("smaller than 500");
}
else if (amount < 2000.0)
{
    Console.WriteLine("bigger or same as 500 but smaller than 2000");
}
else if (amount < 5000.0)
{
    Console.WriteLine("bigger or same as 2000 but smaller than 5000");
}
else
{
    Console.WriteLine("bigger or same as 5000");
}

Console.ReadLine();

答案 2 :(得分:0)

  double fuenfh = 500.00, zweit = 2000.00, fuenft = 5000.00;
            //zweiPro = 2.00, fuenfPro = 5.00, zehnPro = 10.00;
            do
            {
                Console.WriteLine("\nWie groß war Ihr Rechnungsbetrag? ");
                var eingabe = double.TryParse(Console.ReadLine(), out var rebe);
                if (eingabe)
                {
                    if (rebe >= fuenft) { Console.Write($"Die eingabe ist größer oder gleich {fuenft}"); }
                    else if (rebe >= zweit) { Console.Write($"Die eingabe ist größer oder gleich {zweit} aber kleiner als {fuenfh}"); }
                    else if (rebe >= fuenfh) { Console.Write($"Die eingabe ist größer oder gleich {fuenfh} aber kleiner als {zweit}"); }
                    else { Console.Write($"Die eingabe ist kleiner als {fuenfh}"); }
                }
                else { Console.WriteLine("Bitte Zahl eingeben!"); }
            } while (true);

这样你就可以在循环中完成任务!

double.TryParse - 将您的输入转换为double类型 if(eingabe) - 如果输入了数字,它会将你的变量发送到if块 do {} while(true) - 无限循环测试你的功能而不是一直点击调试