我正在尝试使用Java中的方法制作一个银行程序,它可以很好地通过该程序一次,但是当它返回以重复该过程时,似乎并没有保存以前完成的变量。例如,我从$ 10开始,然后存入$ 5,它显示我有$ 15,但是一旦我返回查看“帐户信息”,它将再次重新启动变量的值,并返回到其原始值$ 10。我如何返回并重复该过程,同时每次都获取更改的值。希望这有意义...
package learning;
import java.util.Scanner;
public class Account {
Scanner input = new Scanner(System.in);
double balance;
public double depos(double x) {
System.out.println("how much do you want to deposit?");
x+=input.nextDouble();
balance=x;
return balance;
}
public double withdraw(double x) {
System.out.println("how much do you want to withdraw?");
x-=input.nextDouble();
balance = x;
return balance;
}
public double info(double x) {
balance = x;
return balance;
}
public static void main(String[] args) {
Account acc = new Account();
Scanner input = new Scanner(System.in);
int choice = 0;
double money;
System.out.println("enter your initial balance!");
money = input.nextDouble();
System.out.println("Welcome!");
while (choice !=4) {
System.out.println("1.Deposit");
System.out.println("2.Withdraw");
System.out.println("3.Check Account Info");
System.out.println("4.Exit");
choice = input.nextInt();
switch (choice) {
case 1:
double pick1 = acc.depos(money);
System.out.println("you now have Rp " +pick1+"\n");
break;
case 2:
double pick2 = acc.withdraw(money);
System.out.println("You now have RP "+pick2+"\n");
break;
case 3:
double pick3 = acc.info(money);
System.out.println("your current balance is Rp "+pick3+"\n");
break;
case 4:
System.out.println("thank you!");
break;
}
}
}
}
答案 0 :(得分:0)
您应该不要求在Account
类别的值,但在主只和使用构造为初始值
public class Account {
double balance;
public Account(double init){
balance = init;
}
public double depos(double val) {
balance += val;
return balance;
}
public double withdraw(double val) {
balance -= val;
return balance;
}
public double info() {
return balance;
}
}
主要
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int choice = 0;
System.out.println("enter your initial balance!");
double money = input.nextDouble();
Account acc = new Account(money);
while (choice !=4) {
System.out.println("1.Deposit\n2.Withdraw\n3.Check Account Info\n4.Exit");
choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("how much do you want to deposit?");
double pick1 = acc.depos(input.nextDouble());
System.out.println("you now have Rp " +pick1+"\n");
break;
case 2:
System.out.println("how much do you want to withdraw?");
double pick2 = acc.withdraw(input.nextDouble());
System.out.println("You now have RP "+pick2+"\n");
break;
case 3:
double pick3 = acc.info();
System.out.println("your current balance is Rp "+pick3+"\n");
break;
case 4:
System.out.println("thank you!");
break;
}
}
}
答案 1 :(得分:0)
这是因为 acc 对象中的余额未更新为最新值:)