Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#if语句比较数字_C#_If Statement_Numbers_Comparison - Fatal编程技术网

C#if语句比较数字

C#if语句比较数字,c#,if-statement,numbers,comparison,C#,If Statement,Numbers,Comparison,我对编程非常陌生,必须编写一个小程序来测试一个数字是否小于或大于500、2000和5000。现在我写了这个,但它总是需要第一个else语句,即使数字大于5000,也表示数字小于500。有人知道为什么吗?感谢我得到的每一个帮助。:) 代码如下: double rebe, fuenfh = 500.00, zweit = 2000.00, fuenft = 5000.00; //zweiPro = 2.00, fuenfPro = 5.00, zehnPro = 10.00; Consol

我对编程非常陌生,必须编写一个小程序来测试一个数字是否小于或大于500、2000和5000。现在我写了这个,但它总是需要第一个else语句,即使数字大于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();
}

rebe=Console.Read()更改您的输入
to
rebe=Convert.ToDouble(Console.ReadLine())。我认为您没有得到预期的值。

这就是它的工作原理,将输入转换为双精度(正如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();
Console.WriteLine(“数字有多大?”);
double amount=Convert.ToDouble(Console.Readline());
如果(金额<500.0)
{
控制台写入线(“小于500”);
}
否则,如果(金额<2000.0)
{
Console.WriteLine(“大于或等于500,但小于2000”);
}
否则,如果(金额<5000.0)
{
Console.WriteLine(“大于或等于2000,但小于5000”);
}
其他的
{
Console.WriteLine(“大于或等于5000”);
}
Console.ReadLine();
这样,你将有整个功能在循环中

double.TryParse-将输入转换为双精度类型 如果(eingabe)-如果输入了数字,它会将变量发送到if块中
do{}while(true)-无休止地循环测试您的函数,而无需始终单击调试

“如果一个数字小于或大于500、2000和5000”-这听起来像是3个独立的(非嵌套的)
if/else
s。使用调试器逐步检查代码,并在每一步检查值。这是一段微不足道的代码,如果你打算编写程序,你需要学习调试技巧。还要注意的是,尽管它要等到你点击回车-控制台。只读返回一个单一的整数字符-因此,如果你键入5000后跟回车,那么读将返回53的整数“5”。事实上,今天是学习如何使用调试器的好日子。另外,请仔细阅读您的代码:如果您使用相同的两条语句结束一个条件语句的每个分支,那么这两条语句不是有条件执行的,因此根本不应该处于条件下。不要说出您的数字。无需为值500创建变量
fuenfh
(德语中是fivehunded的缩写)。只要这个值确实没有改变,就在代码中输入数字,否则使用更通用的名称,如“threshold”。
  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);