IF和Switch的选择结构运用
题:
运输公司对用户计算运费.路程(S)越远,每公里运费越低.标准如下:
s<250km 没有折扣
250≤S<500 2%折扣
500≤S<1000 5%折扣
1000≤S<2000 8%折扣
2000≤S<3000 10%折扣
3000≤S 15%折扣
设每公里每吨货物的基本运费为P(Price的缩写),货物重为w(weight的缩写),距离为S,折扣为d(discount的缩写),
则总运费f(freight的缩写)的计算公式为f=P*w*S*(1-d)
* if 解题思路*
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for(int i = 1; i>0; i++){
double f;
double d=0;
System.out.println("----------------------------------\n程序计算运费,请输入参数!");
System.out.print("请输入每公里每吨基本运费(RMB):");
int p = input.nextInt();
System.out.print("请输入您的货物重量(T):");
int w = input.nextInt();
System.out.print("请输入您运送的总里程(km):");
int s = input.nextInt();
if (s<1){
System.out.println("您的里程过短!");
}else if(s<250){
d=0;
}else if(s<500){
d=2;
}else if(s<1000){
d=5;
}else if(s<2000){
d=8;
}else if(s<3000){
d=1;
}else{
d=15;
}
System.out.printf("您的总运费为:%.2f元\n",f=p*w*s*(1-d/100));
}
}
}
* switch 解题思路*
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for(int j = 1; j>0; j++){
double f;
double d=0;
System.out.println("----------------------------------\n程序计算运费,请输入参数!");
System.out.print("请输入每公里每吨基本运费(RMB):");
int p = input.nextInt();
System.out.print("请输入您的货物重量(T):");
int w = input.nextInt();
System.out.print("请输入您运送的总里程(km):");
int s = input.nextInt();
int a =s/250;
switch (a){
case 0:
d=0;
break;
case 1:
d=2;
break;
case 2:
case 3:
d=5;
break;
case 4:
case 5:
case 6:
case 7:
d=8;
break;
case 8:
case 9:
case 10:
case 11:
d=10;
break;
default:
d=15;
}
System.out.printf("您的总运费为:%.2f元\n",f=p*w*s*(1-d/100));
}
}
}
控制台输出-测试
D:\Java\jdk1.8.0_202\bin\java.exe-JAVA_workpace Price
----------------------------------
程序计算运费,请输入参数!
请输入每公里每吨基本运费(RMB):1
请输入您的货物重量(T):1
请输入您运送的总里程(km):1000
您的总运费为:920.00元
----------------------------------
程序计算运费,请输入参数!
请输入每公里每吨基本运费(RMB):1
请输入您的货物重量(T):1
请输入您运送的总里程(km):10000
您的总运费为:8500.00元
----------------------------------
程序计算运费,请输入参数!
请输入每公里每吨基本运费(RMB):
*
*练习结束
*