月亮商场购物打折Java

月亮商场今日搞促销活动,在购物结算时,不同的购物金额可以享受不同的优惠力度。不同购物金额对应的折扣规则如下。

当购物金额不超过100元时,不享受任何优惠,仍需原价支付。

当购物金额超过100元,但不超过200元时,打九折。

当购物金额超过200元,但不超过300元时,打八折。

当购物金额超过300元时,打七折。

需要实现一个购物结算的程序,根据输入的购物金额,结合购物打折规则计算应支付金额,并输出购物金额、支付金额和优惠信息。购物结算程序的运行效果如图所示。

java 复制代码
package lianxi1;

import java.util.Scanner;
import java.text.DecimalFormat;

public class discounts {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("#.00");  // 保留两位小数

        System.out.println("-------------------月亮商场购物打折------------------");
        System.out.println("月亮商场今日搞促销活动,优惠规则如下:");
        System.out.println("1. 不超过100元,不享受优惠。");
        System.out.println("2. 超过100元不超过200元,享受九折优惠。");
        System.out.println("3. 超过200元不超过300元,享受八折优惠。");
        System.out.println("4. 超过300元,享受七折优惠。");
        System.out.println("----------------------------------------------------");
        System.out.print("请输入您的购物金额(元):");

        if (sc.hasNextDouble()) {
            double price = sc.nextDouble();

            if (price < 0) {
                System.out.println("输入的金额不能为负数!");
            } else {
                double payable;
                String message;

                if (price <= 100) {
                    payable = price;
                    message = "此次购物不享受任何优惠,欢迎下次光临~";
                } else if (price > 100 && price <= 200) {
                    payable = 0.9 * price;
                    message = "此次购物享受九折优惠,欢迎下次光临~";
                } else if (price > 200 && price <= 300) {
                    payable = 0.8 * price;
                    message = "此次购物享受八折优惠,欢迎下次光临~";
                } else {
                    payable = 0.7 * price;
                    message = "此次购物享受七折优惠,欢迎下次光临~";
                }

                System.out.println("购物金额: " + df.format(price)+"元");
                System.out.println("应支付金额: " + df.format(payable)+"元");
                System.out.println("优惠信息: " + message);
            }
        } else {
            System.out.println("输入的金额格式有误!");
        }
        sc.close();
    }
}
相关推荐
choke2334 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
岁岁种桃花儿15 分钟前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
roman_日积跬步-终至千里1 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
CodeSheep程序羊1 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
我是咸鱼不闲呀1 小时前
力扣Hot100系列19(Java)——[动态规划]总结(上)(爬楼梯,杨辉三角,打家劫舍,完全平方数,零钱兑换)
java·leetcode·动态规划
加油,小猿猿2 小时前
Java开发日志-双数据库事务问题
java·开发语言·数据库
yuluo_YX2 小时前
Reactive 编程 - Java Reactor
java·python·apache
山岚的运维笔记2 小时前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
南极企鹅3 小时前
springBoot项目有几个端口
java·spring boot·后端