如何改写Java代码实现不使用&&和||运算符计算最低还款额
解决方案
核心思路:利用嵌套if分支替代&&逻辑运算,无需引入其他逻辑运算符即可100%保留原有业务逻辑。
改写后代码
public static double calculateMinPayment(double newBalance) { double x; if (newBalance < 0.00) { return 0.00; } else if (newBalance > 0.00) { if (newBalance <= 49.99) { x = newBalance; } else { if (newBalance <= 300) { x = 50.00; } else { x = newBalance * 0.2; } } } else { x = newBalance * 0.2; } return x; }
逻辑说明
- 原有
条件A && 条件B的判断逻辑,等价于先判断条件A、进入A的分支后再判断条件B,两者逻辑完全等价,没有任何业务逻辑偏差 - 边界值处理完全对齐原代码:
- 欠款为负直接返回0元
- 0<欠款≤49.99元,最低还款额为全额欠款
- 50≤欠款≤300元,最低还款额固定为50元
- 欠款>300元,最低还款额为欠款的20%
- 对newBalance=0的场景兼容和原逻辑执行结果完全一致(0*0.2=0)
内容的提问来源于stack exchange,提问作者shlop14
相关产品推荐
相关产品推荐

