2011-12-12 65 views
0

我只是有一个小的初学者问题,它是关于下面的代码。我想检查客户从信用账户中扣除的金额+当前余额是否低于-5000?它不工作,我想知道我做错了什么?是否关乎负面价值?帮助preciated!关于小于和负值?

// deduct credit account 
if(type == "credit") { 
    if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000) { 
     System.out.println("Sorry! No deduct"); 
    } 
} 

编辑: 的amountOut是顾客进入一个正数。我仍然没有得到它的工作!?它能以其他方式完成吗?这看起来很简单,但我现在还是那么担心!如果余额是-5000,我只是想阻止客户扣除一个值?问题是平衡是一个负数。

+1

什么是“不工作”的样子? – duffymo

+1

它究竟如何“不工作”?你有编译器错误吗?运行时错误?错误的结果? getAccountBalance()返回什么类型?没有更多信息就无法帮助你。 –

+0

是amountOut + ve还是-ve?它需要为你的代码工作。 – brain

回答

1

我认为你必须重写条件。如果我了解您的情况,客户可以提取超过双倍数额的5000。示例如果客户的余额为2000年,他/她可以提取最多7000卢比。如果他/她想提取morw,那么你的应用程序将显示“Sorry!No deduct”消息。如果是这种情况,那么你可以重写下面给出的逻辑

int thresholdMoney = 5000; 
     if(((creditAccountList.get(index).getAccountBalance()+ thresholdMoney) - Math.abs(amountOut)) < 0){ 
      System.out.println("Sorry! No deduct"); 

     } 
+0

这种情况是,客户的信用额度为5000,比方说卢比,所以我的想法是允许客户扣除/删除不同的值,直到账户余额达到-5000卢比。如果客户存入/插入货币以使余额为正数,则客户不使用该信用。 –

+0

您是否尝试过我发布的逻辑? –

+0

是的,现在我已经很好了!谢谢!代码只是有点混乱,但我想我现在明白了。 –

1

我认为你需要减去amountOut,虽然它不清楚你存储在那里的价值。

if((creditAccountList.get(index).getAccountBalance() - amountOut) < -5000) 
                ^
               Changed from plus 
+0

我做过了,但它仍然不起作用!? –

+0

@ 3D-kreativ,查看更新,切换值。 –

4

更换

if(type == "credit") { 

if ("credit".equals(type)) { 

除此之外,代码似乎是正确的,为了仔细检查,我将通过一个调试器中运行,或为了快速和容易的调试,输入以下错误消息:

System.out.printf("out %d balance %d\n", amountOut, creditAccountList.get(index).getAccountBalance()); 
0

它应该是

// deduct credit account 
if(type == "credit") { 
    if((amountOut + creditAccountList.get(index).getAccountBalance()) > -5000){ 
    System.out.println("Sorry! No deduct"); 
} 
} 
1

负号码的工作原理与他们的一样;这很可能是你的逻辑关闭了。

if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000){ 

如果amountOut是肯定的,您永远不会减少帐户余额。要么使其消失,要么从当前余额中扣除它以在取款后取得余额。