You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于多分支/嵌套if-else的支票兑现服务费计算代码求助

支票兑现服务费计算的Java实现(多分支if-else版本)

先明确需求对应的逻辑边界(补充需求未明确的等值场景,符合常规业务逻辑):

  • 金额小于10美元:固定收取1美元
  • 金额大于等于10美元且小于100美元:收取金额的10%
  • 金额大于等于100美元且小于1000美元:固定5美元 + 金额的5%
  • 金额大于等于1000美元:固定40美元 + 金额的1%

以下是用多分支if-else实现的完整代码,包含输入校验和结果输出:

import java.util.Scanner;

public class CheckCashingFeeCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入支票金额(美元):");
        double amount = scanner.nextDouble();
        scanner.close();
        
        double fee = 0.0;
        
        // 校验金额合法性
        if (amount < 0) {
            System.out.println("错误:金额不能为负数");
            return;
        }
        
        // 多分支计算服务费
        if (amount < 10) {
            fee = 1.0;
        } else if (amount < 100) {
            fee = amount * 0.1;
        } else if (amount < 1000) {
            fee = 5 + amount * 0.05;
        } else {
            fee = 40 + amount * 0.01;
        }
        
        // 格式化输出结果,保留两位小数
        System.out.printf("支票兑现服务费为:%.2f美元%n", fee);
    }
}

关键说明

  1. 边界处理:利用多分支if-else的特性,每个else if自动承接上一个条件不成立的情况,比如else if (amount < 100)等价于amount >=10 && amount <100,避免冗余条件。
  2. 输入校验:增加金额负数判断,避免非法输入导致计算异常。
  3. 结果格式化:用printf保留两位小数,符合货币显示规范。

如果你的代码之前失败,大概率是边界值处理错误(比如遗漏等于10、100、1000的场景),或是未处理非法输入导致的异常,可对照上述代码排查问题。

内容的提问来源于stack exchange,提问作者xiela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:35:44