这是我的代码:
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 时,为什么答案都是否定的?
答案 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));
}