Je suis en train de créer un code java de boucle bancaire. J'essaie de demander à l'utilisateur pour combien d'argent ils aimeraient déposer dans leur compte. Je peux le faire fonctionner une fois. Par exemple, ils entreront 20 $ la première fois. Ensuite, ils décideront de mettre 10 $ de plus. Cependant, au lieu d'afficher le solde actuel à 30 $, il n'affiche que celui entré récemment (10 $). Comment puis-je réparer ça?Pourquoi l'argent saisi n'est-il pas incrémenté sur le solde précédent? (en Java)
Voici mon code pour cette partie de la boucle dans le menu qui appelle la classe:
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);
}
Voici le code pour le dépôt qui est appelé:
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");
}
}
'Compte compte = nouveau compte();' Ne pas créer un nouveau compte dans le bloc else if. Cette variable n'est visible que dans le bloc et nulle part ailleurs. En savoir plus sur la portée variable –
Probablement parce qu'il crée une nouvelle instance 'Account' à chaque fois, plutôt que de réutiliser l'instance. –
éviter 'float. utilisez 'double 'sauf si vous savez vraiment que vous avez besoin d'un' float. Cependant, en utilisant un type à virgule flottante pour l'argent est une très mauvaise idée –