Java基础编程小案例-买飞机票

该博客介绍了一个Java程序,用于根据输入的机票原价、月份和仓位类型计算淡旺季的优惠价格。程序使用if和switch语句判断月份和仓位,提供9折到7折不等的折扣。用户输入错误时,返回-1表示无法计算价格。
摘要由CSDN通过智能技术生成

买飞机票

需求

  • 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
  • 机票最终优惠价格的计算方案如下:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

分析

  • 键盘录入机票的原价,仓位类型,月份信息,调用方法返回机票最终的优惠价格。
  • 方法内部应该先使用if分支判断月份是旺季还是淡季,然后使用switch分支判断是头等舱还是经济舱。
  • 选择对应的折扣进行计算并返回计算的结果,如果信息录入有误返回价位为-1元代表即可。

代码实现

package com.harry;

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //目标:完成飞机票的价格计算
        //1、让用户输入机票原价,月份,仓位类型
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入机票原价:");
        double money = sc.nextDouble();

        System.out.println("请您输入机票的月份(1-12):");
        int month = sc.nextInt();

        System.out.println("请您选择仓位类型:");
        String type = sc.next();

        //4.调用方法,统计结果
        System.out.println("机票优惠后的价格是"+calc(money,month,type));
    }
    /*
    2、定义方法接收信息,统计优惠后的价格返回
     */
    public static double calc(double money,int month,String type) {
        //3、判断用户选择的信息情况
        if (month >= 5 && month <= 10) {
            //旺季
            switch (type) {
                case "头等舱":
                    money *= 0.90;
                    break;
                case "经济舱":
                    money *= 0.85;
                    break;
                default:
                    System.out.println("您输入的仓位类型有误~~");
                    money =-1;//表示当前无法计算价格
            }
        } else if (month == 11 || month == 12 || month >= 1 && month <= 4) {
            //淡季
            switch (type) {
                case "头等舱":
                    money *= 0.70;
                    break;
                case "经济舱":
                    money *= 0.65;
                    break;
                default:
                    System.out.println("您输入的仓位类型有误~~");
                    money =-1;//表示当前无法计算价格
            }
        } else {
            System.out.println("对不起,您输入的月份有问题~~");
            return -1;//表示当前无法计算价格
        }
        return money;//最终价格
    }
}

运行截图
在这里插入图片描述

总结

  1. 判断值匹配时选择使用switch分支结构实现
  2. 判断区间范围时选择使用if分支结构实现

文献
黑马程序员

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值