为什么我的if语句不能正常工作?

时间:2014-02-05 03:09:54

标签: java if-statement

这是一个ATM课程,我一直负责上课。我有这个功能的问题。该帐户不能低于25,如果是这样,交易必须被拒绝。我不确定我在这里做错了什么。我能得到一些建议吗?

public void withDrawal(double amount) 
{ 
    if(getbalance() > =  25 && getbalance() > amount)
    {       
        super.setwithdraws(amount);         
                    withdrawlsCheck();
        JOptionPane.showMessageDialog(null," WITHDRAW SUCCESSFULL");
    }

    if(getbalance() <= 25 && getbalance() < amount)
    {
        JOptionPane.showMessageDialog(null," Transaction Declined !!!! Your account must have at least $25 ");
    }

} 

2 个答案:

答案 0 :(得分:2)

if ((getBalance() - amount) < 25) {
  don't do the transaction
else {
  do the transaction
}

也请正确使用camelCase。

还有一个关于风格的想法。 25应该被宣布为一个常数,而不是作为一个“神奇的数字”而留下来。

答案 1 :(得分:0)

  1. > =并不重要,您可能需要>=。我猜这就是你实际得到的,这只是你帖子中的一个错字。
  2. 您不希望{1}在一个条件上,>= 25在另一个条件上。请尝试<= 25,以便两个条件都不会涵盖25个。
  3. 您的逻辑应该在提款后检查余额,而不是之前。 < 25更接近你想要的。
  4. 您的逻辑仅涵盖四种情景中的两种。你有“足够的平衡,至少25”,“没有足够的余额,最多25”......那么“足够的平衡,最多25”和“没有足够的余额和至少25”?注意,一旦实施了第2点和第3点,这一点并不重要;我只是评论你最初是如何提出逻辑的。