问题遇到的现象和发生背景
用Java语言编写一个计算行李托运费的程序,当行李重量小于40公斤时费用为0,大于40公斤小于60公斤时,超出部分每公斤加收10元,大于60公斤小于80公斤时,超出部分每公斤加收20元,80公斤以上的部分,每公斤加收30元。求解托运行李重量为M时的应付的总费用。
问题相关代码,请勿粘贴截图
import java.util.*;
public class xinglituoyun {
public static void main(String[] args) {
System.out.println("Please input the weight of package:");
Scanner sc=new Scanner(System.in);
int weight=sc.nextInt();
double total=0;
if(weight<=40) {
total=weight*0;
}
else {
if(weight>40||weight<=60){
total=((weight-40)*10);}
else{
if(weight>60||weight<=80){
total=(200+(total-60)*20);}
else{
total=(600+(total-80)*30);
}
}
}
System.out.println("Total:"+total);
}
}
运行结果及报错内容
在输入61的时候,结果是210 正确的应该是220
不满足weight>60||weight<=80的不应该运行的是里面一层if else嘛?
但是程序运行的是if那个weight>60||weight<=80,所以输出结果是210
我的解答思路和尝试过的方法
我想要达到的结果
这个问题的正确答案