package BANK;
import java.util.Scanner;
public class BankAccount {
int account_number;
double leftmoney;
public double getleftmoney() {
return leftmoney;
}
public void savemoney(double money) { //存款
leftmoney+=money;
}
public void getmoney(double money) { //取款
leftmoney-=money;
}
public BankAccount(int number,double money) {
account_number=number;
leftmoney=money;
}
public static void main(String[] args) {
while (true){
System.out.println("----------------------------");
System.out.println("-----------1.开户------------");
System.out.println("-----------2.存款------------");
System.out.println("-----------3.取款------------");
System.out.println("-----------0.退出------------");
System.out.println("----------------------------");
Scanner a = new Scanner(System.in);
System.out.println("请选择");
int input = a.nextInt();
BankAccount ba=new BankAccount(123456,500); //输入账号与初始金额
if(input == 1) {
System.out.println("---------你选择了1.开户---------");
System.out.println("您的账号为123456");
System.out.println("您的初始额为500");
}
if(input == 2) {
System.out.println("---------你选择了2.存款---------");
ba.savemoney(1000);
System.out.println("存入1000元后,你的余额为"+ba.getleftmoney());
}
ba.savemoney(1000);
if(input == 3) {
System.out.println("---------你选择了3.取款---------");
ba.getmoney(800);
System.out.println("取出800元后,你的余额为"+ba.getleftmoney());
}
if(input == 0) {
System.out.println("---------你选择了0.退出---------");
break;
}
}
}
}
System.out.println("存入1000元后,你的余额为"+ba.getleftmoney());此句代码运行后所得的ba.getleftmoney不能在3.取款模式中实现;
因此加上再一次ba.savemoney(1000);之后,就可以在取款模式中实现;
因此有啥解决的好办法、此问题出现的原因!
每次循环你都BankAccount ba=new BankAccount(123456,500);
相当于重新初始化银行账户了,你可以考虑把实例化BankAccount对象的操作挪到while循环外面来
BankAccount ba=new BankAccount(123456,500);
把这个放到while循环外面
BankAccount ba=new BankAccount(123456,500);
每执行一次就会重新调用相当于你存入的钱又被初始化500了这样你取的话就是500-800 肯定是负数的 你把这个放在循环外