2017-09-27 17 views
0

私は銀行のループのJavaコードを作成しています。私は、ユーザーに彼らの口座に入金したい金額を尋ねようとしています。私はこれを一度働かせることができます。たとえば、初めて20ドルで入力します。それから彼らは$ 10をもっと入れることにします。ただし、現在の残高を30ドルで表示するのではなく、最近入力したもの($ 10)のみを表示します。これをどうやって解決するのですか?ここで入金金額が前の残高に増えていないのはなぜですか? (Javaで)

は、クラスを呼び出すメニューのループのその部分のために私のコードです:あなたは維持したい

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

'アカウントアカウント=新しいアカウント();' else ifブロック内に新しいアカウントを作成しないでください。その変数はブロック内でのみ表示され、他の場所では表示されません。変数スコープについて学んでください。 –

+0

おそらく、インスタンスを再利用するのではなく、新しい「Account」インスタンスを毎回作成している可能性があります。 –

+0

'floatを避けてください。 'float 'が必要なことを本当に知っていなければ' double'を使います。しかし、お金のために浮動小数点型を使用することは非常に悪い考えです –

答えて

0

:ここ

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); 
     } 

と呼ばれている預金のコードですこれまでの総収支。ただし、新しいAccountオブジェクトを作成すると、残高はゼロに初期化され、以前の残高が失われます。 あなたが行う必要があるのは、Accountオブジェクトを一度作成してから、同じAccountオブジェクトに対してdepositを呼び出すことです。

関連する問題