[英]Calling/saving methods variables with java
我正在嘗試使用 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;
}
}
}
}
您不應該要求Account
類中的值,而應該只在 main 中要求並使用構造函數作為初始值
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;
}
}
}
那是因為acc ooject 中的余額沒有用最新值更新:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.