我遇到以下方法的问题。如果我应用当前设置为注释if/else
的{{1}}条件,则变量/* */
获得双倍值(如果余额为100,我撤回1最终余额为98,如果我撤消10最终余额为80)。为什么呢?
withdrawalAmountVar
答案 0 :(得分:1)
问题是
if ( (moneyAmountVar -= withdrawalAmountVar) < overdraftVar)
因为您使用了操作 - =实际上是将moneyAmountVar的值更改为moneyAmountVar-withdrawalAmountVar。当您使用此操作或类似操作时,lValue将始终相应地更改,无论它是在条件还是循环中。 修复:
int temp = moneyAmountVar - withdrawalAmountVar;
if ( (temp) < overdraftVar)
Temp变量将确保moneyAmount的值不会改变。