买飞机票
机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
方法一:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入当前月份:");
int month = sc.nextInt();
System.out.println("请输入机票原价格:");
int ticket = sc.nextInt();
System.out.println("请选择机舱:(0 头等舱/1 经济舱)");
int box = sc.nextInt();
//判断机舱是什么类型?
if(box == 0){
switch (month){
//使用case穿透,将旺季和淡季分成两部分
case 5,6,7,8,9,10 -> System.out.println("机票的最终价格为:"+ticket * 0.9);
case 11,1,2,3,4 -> System.out.println("机票的最终价格为:" + ticket * 0.7);
default -> System.out.println("键盘录入的是一个非法数据。");
}
}else if(box == 1){
switch (month){
case 5,6,7,8,9,10 -> System.out.println("机票的最终价格为:"+ticket * 0.85);
case 11,1,2,3,4 -> System.out.println("机票的最终价格为:" + ticket * 0.65);
default -> System.out.println("键盘录入的是一个非法数据。");
}
}else {
System.out.println("请选择正确的机舱类型。");
}
}
方法二:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入当前月份:");
int month = sc.nextInt();
System.out.println("请输入机票原价格:");
int ticket = sc.nextInt();
System.out.println("请选择机舱:(0 头等舱/1 经济舱)");
int seat = sc.nextInt();
switch (month){
case 5,6,7,8,9,10 -> System.out.println("机票的最终价格为:"+ticketPrice(ticket,seat,0.9,0.85));
case 11,1,2,3,4 -> System.out.println("机票的最终价格为:"+ticketPrice(ticket,seat,0.7,0.65));
default -> System.out.println("键盘录入的是一个非法数据。");
}
}
//创建一个方法
public static int ticketPrice(int ticket,int seat,double v0,double v1){
//判断机舱是什么类型?
if(seat == 0){
ticket = (int)(ticket * v0);
}else if(seat == 1){
ticket = (int)(ticket * v1);
}else {
System.out.println("请选择正确的机舱类型。");
}
return ticket;
}
感觉代码还可以再优化一下,第二个方法也有点小瑕疵,请指教!