练习:17

原题目是:

你准备去海南旅游,现在要订购机票。机票的价格受季节旺季,淡季影响,而且头等舱和经济舱价格也不同。假设机票原价为5000元,4~10月为旺季,旺季头等舱九折,经济舱打八折,淡季头等舱打五折,经济舱打四折。编写程序,使用嵌套if选择结构,根据出行的月份和选择的舱位输出实际机票的价格。

如下:

请输入您出行的月份:1~12

5

请问你选择头等舱还是经济舱?头等舱请输入1,经济舱输入2

2

您的机票价格为:3000.0

注:粗,斜体为从键盘录入的数据。

分析及执行:

  • 使用if镶嵌结构
  • 使用mo保存月份
  • 使用air对飞机舱位进行划分
  • 使用if镶嵌结构对旺季时的头等舱及经济舱进行划分
  • 使用if多重结构,对淡季时头等舱及经济舱进行划分
  • 逻辑问题,很费脑筋!思考了一晚上才弄出来,而且因为对if镶嵌不熟悉,所以吃了不少亏。。。

参考代码

import java.util.Scanner;
public class P96_2{
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.println("请输入出行的月份:1~12");
int mo = input.nextInt();//从键盘录入数字
if ( mo <= 12 && mo >= 1 ){ //检测输入的月份是否正确
System.out.println("请问你选择头等舱还是经济舱?头等舱请输入1,经济舱输入2");//若正确则提示下一项,否则结束
} else {
System.out.println("数字输入错误,请确认输入的是月份!");//错误提示
}
double num = 5000 ;//定义机票原价为5000
int air = input.nextInt(); //录入飞机舱位
if ( mo >= 4 && mo <= 10 ){ //头等舱,旺季所享受的折扣,及输出提示 if ( air == 1 ){//经济舱,旺季所享受的折扣,及输出提示 num = num * 0.9 ; System.out.println("您的机票价格为1:\t"+num); } else if ( air == 2 ) { num = num * 0.8 ; System.out.println("您的机票价格为2:\t"+num); } } System.out.println("**********************************"); if ( mo <=3 || mo > 10 && mo <= 12 ) {//头等舱,淡季所享受的折扣,及输出提示 if ( air == 1 ) { num = num * 0.5 ; System.out.println("您的机票价格为3:\t"+num); } else if ( air == 2 ) {//经济舱,淡季所享受的折扣,及输出提示 num = num * 0.4 ; System.out.println("您的机票价格为4:\t"+num); } else { } } } }

发表评论

邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据