If 语句给出不正确的输出

时间:2021-01-18 07:37:51

标签: java if-statement conditional-statements

这是我的代码:

if(weight<=5)
    cost=(2.8*weight);
if(weight<=20)
    cost=(2.8*5)+(5.2*(weight-5));
if(weight<=50)
    cost=(2.8*5)+(5.2*15)+(7*(weight-20));
if(weight>50)
    cost=(2.8*5)+(5.2*15)+(7*30)+(8.6*(weight-50));

当权重小于 6.9 时,为什么答案都是否定的?

1 个答案:

答案 0 :(得分:2)

在编写 IF 嵌套语句时,必须使用 ELSE 语句来防止出现这种情况。

正确的代码:

if(weight<=5) {
    cost=(2.8*weight);
} else if(weight<=20) {
    cost=(2.8*5)+(5.2*(weight-5));
} else if(weight<=50) {
    cost=(2.8*5)+(5.2*15)+(7*(weight-20));
} else if(weight>50) {
    cost=(2.8*5)+(5.2*15)+(7*30)+(8.6*(weight-50));
}

或者,您必须更好地定义范围,如下所示:

if(weight<=5) {
    cost=(2.8*weight);
} if(weight > 5 && weight<=20) {
    cost=(2.8*5)+(5.2*(weight-5));
} if(weight > 20 && weight<=50) {
    cost=(2.8*5)+(5.2*15)+(7*(weight-20));
} if(weight>50) {
    cost=(2.8*5)+(5.2*15)+(7*30)+(8.6*(weight-50));
}