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

Java条件语句If-Else逻辑错误排查:电脑租赁计费问题

电脑租赁计费Java代码逻辑错误:预期输出与实际不符

某电脑租赁店计费规则为:前3小时及以内按每小时常规收费(REGULAR CHARGE)计费;超出3小时的部分,按常规收费的90%(即优惠10%)计费。

我编写的Java代码如下:

System.out.print("ENTER REGULAR CHARGE: ");
int charge = scan.nextInt();
System.out.print("ENTER REGULAR HOURS: ");
int hours = scan.nextInt();
scan.close();
if (hours <= 3) {
    int bill= charge * hours;
    System.out.print("RENTAL BILL IS: " +bill);
} else {
    double bill = (double) (charge * hours)-0.10;
    System.out.print("RENTAL BILL IS: " +bill);
}

当输入常规收费为4、租赁时长为10小时时,预期输出应为:RENTAL BILL IS: 39,但实际输出为RENTAL BILL IS: 39.9。我不确定是公式还是变量使用存在问题,希望有人能指出代码中的错误。


问题根源与修正方案

你的代码核心问题出在else分支的计费公式完全不符合规则,咱们一步步理清楚:

1. 错误公式分析

你写的(double) (charge * hours)-0.10逻辑是:把所有时长按原价计算后,直接减去0.1元——这和“超出3小时的部分打9折”的规则完全不沾边。这也是为什么输入4元/小时、10小时时,你得到39.9(4*10=40,减0.1就是39.9)的原因。

2. 正确的计费逻辑

根据规则,账单应该拆成两部分计算:

  • 前3小时:按原价计费,即 charge * 3
  • 超出3小时的部分:按原价的90%计费,即 charge * 0.9 * (hours - 3)
  • 总账单 = 前3小时费用 + 超出部分费用

3. 修正后的代码

import java.util.Scanner;

public class RentalCalculator {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        System.out.print("ENTER REGULAR CHARGE: ");
        int charge = scan.nextInt();
        System.out.print("ENTER REGULAR HOURS: ");
        int hours = scan.nextInt();
        scan.close();
        
        double bill;
        if (hours <= 3) {
            bill = charge * (double) hours;
        } else {
            // 拆分计算:前3小时原价,超出部分9折
            bill = charge * 3 + charge * 0.9 * (hours - 3);
        }
        
        // 如果需要输出整数(比如四舍五入),可以用Math.round()
        System.out.println("RENTAL BILL IS: " + Math.round(bill));
        // 如果允许保留小数,直接输出即可:
        // System.out.println("RENTAL BILL IS: " + bill);
    }
}

补充说明

  • 关于变量类型:用double存储账单是因为9折后的费用可能是小数,避免整数运算的精度丢失;
  • 关于你提到的预期输出39:按照规则计算,4元/小时、10小时的正确账单应该是 4*3 + 4*0.9*7 = 12 + 25.2 = 37.2,如果需要得到39,可能是规则描述或预期值存在偏差,但代码的核心逻辑错误已经修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:43:03