练习:17

原题目是:

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

如下:

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

5

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

2

您的机票价格为:3000.0

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

分析及执行:

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

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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来减少垃圾评论。了解我们如何处理您的评论数据