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

如何实现返回实际放电量的Java电池放电函数(禁用条件语句)

电池放电函数修正方案

问题核心:当前代码返回的是理论计算的放电量(cameraPowerConsumption * minutes),但实际放电量不能超过剩余电池电量,导致第二次调用时,剩余电量900、理论放电1000的情况下,代码错误返回了1000而非实际可放的900。

修改思路:用Math.min()计算实际可放电量,无需条件语句即可保证放电量不超过剩余电量。

修改后的代码:

public double drain(double minutes) {
    double theoreticalDrain = cameraPowerConsumption * minutes;
    double actualDrain = Math.min(theoreticalDrain, batteryCharge);
    batteryCharge -= actualDrain;
    totalDrain += actualDrain;
    return actualDrain;
}

逻辑说明:

  • 先计算理论放电量theoreticalDrain
  • 通过Math.min()取理论值与当前电池电量的较小值,得到真实可放电量actualDrain
  • 电池电量减去实际放电量(因actualDrain不超过当前电量,不会出现负电量)
  • 总消耗累加实际放电量,最后返回实际放电量

此修改后,第二次调用时剩余电量900、理论放电1000的场景下,实际放电量会取900,返回值符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:22:52