变量通过应用if / else语句获得double值

时间:2016-05-01 15:42:22

标签: java if-statement

我遇到以下方法的问题。如果我应用当前设置为注释if/else的{​​{1}}条件,则变量/* */获得双倍值(如果余额为100,我撤回1最终余额为98,如果我撤消10最终余额为80)。为什么呢?

withdrawalAmountVar

1 个答案:

答案 0 :(得分:1)

问题是

if ( (moneyAmountVar -= withdrawalAmountVar) < overdraftVar)

因为您使用了操作 - =实际上是将moneyAmountVar的值更改为moneyAmountVar-withdrawalAmountVar。当您使用此操作或类似操作时,lValue将始终相应地更改,无论它是在条件还是循环中。 修复:

int temp = moneyAmountVar - withdrawalAmountVar;

 if ( (temp) < overdraftVar)

Temp变量将确保moneyAmount的值不会改变。