我只是有一个小的初学者问题,而且是关于下面的代码。我想检查一下客户从信用账户中扣除的金额+当前余额是否低于-5000?它不起作用,我想知道我做错了什么?这是关于负值吗?帮助预先确定!
// deduct credit account
if(type == "credit") {
if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000) {
System.out.println("Sorry! No deduct");
}
}
编辑: amountOut是客户输入的正数。我仍然没有让它工作!?可以用其他方式完成吗?它看起来很简单,现在还很复杂!我只是想阻止客户扣除价值,如果余额为-5000?问题是余额是负数。
答案 0 :(得分:4)
替换
if(type == "credit") {
带
if ("credit".equals(type)) {
除此之外,代码似乎是正确的,为了仔细检查,我会通过调试器运行它,或者将以下错误消息用于快速简单的调试:
System.out.printf("out %d balance %d\n", amountOut, creditAccountList.get(index).getAccountBalance());
答案 1 :(得分:1)
我认为你需要减去amountOut,虽然它不清楚你在那里存储了什么价值。
if((creditAccountList.get(index).getAccountBalance() - amountOut) < -5000)
^
Changed from plus
答案 2 :(得分:1)
负数与他们一直有效;你的逻辑更可能是关闭的。
if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000){
如果amountOut
为正,您永远不会减少帐户余额。要么使其为负数,要么从当前余额中减去它以在取款后获得余额。
答案 3 :(得分:1)
我认为你必须重写这个条件。如果我理解你的情况是客户可以提取超过数量的5000。示例如果客户的余额为2000人,他/她可以提取最高7000卢比。如果他/她想要退出,那么您的申请将显示“抱歉!没有扣除”消息。如果是这种情况,那么您可以重新编写逻辑,如下所示
int thresholdMoney = 5000;
if(((creditAccountList.get(index).getAccountBalance()+ thresholdMoney) - Math.abs(amountOut)) < 0){
System.out.println("Sorry! No deduct");
}
答案 4 :(得分:0)
应该是
// deduct credit account
if(type == "credit") {
if((amountOut + creditAccountList.get(index).getAccountBalance()) > -5000){
System.out.println("Sorry! No deduct");
}
}