某航空公司为吸引更多的顾客推出了优惠活动。原来的飞机票价为 3000 元,活动时,4~11 月旺季,头等舱 9 折,经济舱 8 折;1~3 月、12 月淡季,头等舱 5 折,经济舱 4 折,求机票的价格。
下面使用 Java 的嵌套 if 语句根据淡旺季飞机票打折求出飞机票的价格,编写 Java 程序实现代码如下:
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入出行的月份:");
- int month = sc.nextInt();
- System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
- int kind = sc.nextInt();
- double result = 60000; // 原始价格
- // 旺季的票价计算
- if (month <= 11 && month >= 4) {
- if (kind == 1) { // 旺季头等舱
- result = result * 0.9;
- } else if (kind == 2) { // 旺季经济舱
- result = result * 0.8;
- } else {
- System.out.println("选择种类有误,请重新输入!");
- }
- }
- // 淡季的票价计算
- else if ((month >= 1 && month <= 3) || month == 12) {
- if (kind == 1) { // 淡季头等舱
- result = result * 0.5;
- } else if (kind == 2) { // 淡季经济舱
- result = result * 0.4;
- } else {
- System.out.println("选择种类有误,请重新输入!");
- }
- } else {
- System.out.println("日期选择有误,请重新输入!");
- }
- System.out.println("您选择的机票价格为:" + result);
- }
- }
上面代码将用户输入的月份保存到 month 变量,将机票种类保存到 kind 变量。接下来判断变量 month 和 kind 的范围。如果变量 month 在 4~11,kind 为 1 则执行 result=result*0.9,为 2 则执行 result=result*0.8;变量 month 在 1~3、12,kind 为 1 则执行 result=result*0.5,为 2 则执行 result=result*0.4。当用户输入有误时,根据错误情况给予不同的提示。
旺季经济舱出行的输出结果如下所示:
请输入出行的月份: 6 选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱 2 您选择的机票价格为:48000.0
淡季头等舱的输出结果如下所示:
请输入出行的月份: 2 选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱 1 您选择的机票价格为:30000.0
上面是用嵌套 if 实现的淡旺季飞机票打折,下面我们用 switch 实现,代码如下所示:
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入出行的月份:");
- int month = sc.nextInt();
- System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
- int kind = sc.nextInt();
- double result = 60000; // 原始价格
- switch (month) {
- // 旺季的票价计算
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- switch (kind) {
- case 1: // 旺季头等舱
- result = result * 0.9;
- break;
- case 2:
- result = result * 0.8;
- break;
- default:
- System.out.println("选择种类有误,请重新输入!");
- break;
- }
- break;
- case 1:
- case 2:
- case 3:
- case 12:
- switch (kind) {
- case 1: // 旺季头等舱
- result = result * 0.5;
- break;
- case 2:
- result = result * 0.4;
- break;
- default:
- System.out.println("选择种类有误,请重新输入!");
- break;
- }
- break;
- default:
- System.out.println("日期选择有误,请重新输入!");
- break;
- }
- System.out.println("您选择的机票价格为:" + result);
- }
运行结果如下所示:
淡季头等舱的输出结果如下所示: