【发布时间】:2017-10-26 13:54:14
【问题描述】:
我真的是编程新手,必须编写一个小程序来测试一个数字是小于还是大于 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();
}
【问题讨论】:
-
“如果一个数字小于或大于 500、2000 和 5000” - 这听起来像是 3 个独立(非嵌套)
if/elses 对我来说。 -
使用调试器单步调试您的代码并检查每一步的值。这是微不足道的代码,如果您打算编写程序,则需要学习调试技巧。
-
另请注意,尽管它会等到您按 Enter 键 - Console.Read 仅返回单个字符作为整数 - 因此,如果您键入 5000 后按 Enter 则 Read 将返回 '5' 作为整数是 53 岁。
-
确实,今天是学习如何使用调试器的好日子。另外,请认真阅读您的代码:如果您以相同的两条语句结束条件的每个分支,则这两条语句不会有条件地执行,因此不应完全处于条件状态。
-
不要说出你的号码。没有必要为值 500 创建一个变量
fuenfh(德语中五百的缩写)。只要这个值绝对不会改变,只需将数字放入您的代码中,否则使用更通用的名称,如“阈值” "。
标签: c# if-statement numbers comparison