2017-09-27 41 views
0

我正在创建银行家循环java代码。我试图询问用户他们想要存入他们账户的金额。我可以得到这个工作一次。例如,他们将首次进入20美元。然后他们会决定再投入10美元。但是,不是将当前余额显示在30美元,而是仅显示最近输入的美元(10美元)。我该如何解决?为什么输入的资金没有增加到前一个余额? (Java)

这是我在菜单中环的那部分代码调用类:

else if(userInput == 3){ 
      Account account = new Account(); 
      System.out.print("\nHow much would you like to deposit?: "); 
      float money = input.nextFloat(); 
      account.deposit(money); 
     } 

这里是被称为存款代码:你要保持

public void deposit(float money) { 
    if (money < 0) { 
     System.err.println("Error: Can't deposit negative money.\n"); 
     return; 
    } 
    else { 
     currentBalance = money + currentBalance; 
     System.out.println("Current balance: $" + currentBalance + "\n"); 
    } 
} 
+5

'Account account = new Account();'不要在else if块中创建一个新账户。该变量只在块内可见,没有其他位置。了解变量范围。 –

+0

可能是因为它每次都创建一个新的'Account'实例,而不是重用实例。 –

+0

避免“浮动”。除非你真的知道你需要'浮动',否则使用'double'。然而,使用浮点类型来赚钱是一个非常糟糕的主意 –

回答

0

到目前为止的总余额。但是,当您创建一个新的对象时,余额将初始化为零,从而失去以前的余额。 您需要做的只是创建一个Account对象一次,然后在同一个Account对象上调用deposit