我有2节课。该程序几乎可以模拟ATM。用户将要求存款,取款或查看用户银行帐户的余额。
首先将余额设置为零,然后用户可以存入或提取资金。
被调用的第一个类CheckingAccount
将具有方法,而没有main方法,而TestCheckingAccount
具有main方法。计算时,所有输入和输出都将出现在TestCheckingAccount
类中CheckingAccount
。
如果用户选择存款,则帐户余额将添加到用户要存入其帐户的金额中。类中的getBalance
方法CheckingAccount
返回用户帐户的余额,同时processDeposit
将用户想要的金额添加到存款中,同时processCheck
减少用户选择的余额。
如果用户选择查看余额,则它将打印用户余额。
public class CheckingAccount{
double myBalance = 0;
public double getBalance(){
return myBalance;
}
public void processDeposit(double amount){
myBalance += amount;
}
public void processCheck(double amount){
myBalance -= amount;
}
}
import java.util.Scanner;
public class TestCheckingAccount {
public static void main(String[] args) {
CheckingAccount check = new CheckingAccount();
Scanner in = new Scanner(System.in);
String choice;
double moneyAdded;
double moneySubtracted;
do
{
System.out.println("Deposit");
System.out.println("Withdraw");
System.out.println("Balance");
System.out.println("Exit");
System.out.println("**********************************************");
System.out.println("Which operation would you like to use?");
choice = in.nextLine();
if(choice.equalsIgnoreCase("Deposit"))
{
System.out.println("How much money would you like to deposit?");
moneyAdded = in.nextDouble();
check.processDeposit(moneyAdded);
}
if(choice.equalsIgnoreCase("Withdraw"))
{
System.out.println("How much money would you like to withdraw?");
moneySubtracted = in.nextDouble();
check.processCheck(moneySubtracted);
}
else if(choice.equalsIgnoreCase("Balance"))
{
System.out.printf("$%.2f%n" , check.myBalance);
}
else if(choice.equalsIgnoreCase("Exit"))
{
System.exit(0);
}
}
while(choice.equalsIgnoreCase("Deposit")||choice.equalsIgnoreCase("Withdraw")||choice.equalsIgnoreCase("Balance"));
in.close();
}
}
该程序运行正常,但我遇到的问题是该程序必须询问用户他/她是否要存入,提取或查看余额,直到用户完成并退出该程序。
因此,当程序询问用户是否要存入,提取或查看帐户中的余额时,该部分必须处于循环状态。我把它放在一个do-while循环中。因此,当我运行程序并询问余额时,会打印出余额,然后循环正常,然后程序再次询问他/她是否要提取,存入,查看余额或退出。
但是,当我要求程序提取或存款时,它会运行,但不会循环,而是退出循环。
我如何制作程序以使其可以提取或存款但仍循环并返回菜单,在该菜单中询问用户是否要存入或提取资金而不仅仅是结束循环?
您可以break
在“退出”条件下使用无限循环。另外,您可以使用try-with-resources
close语句关闭Scanner
。就像是,
try (Scanner in = new Scanner(System.in)) {
String choice;
double moneyAdded;
double moneySubtracted;
while (true) {
System.out.println("Deposit");
System.out.println("Withdraw");
System.out.println("Balance");
System.out.println("Exit");
System.out.println("**********************************************");
System.out.println("Which operation would you like to use?");
choice = in.nextLine();
if (choice.equalsIgnoreCase("Deposit")) {
System.out.println("How much money would you like to deposit?");
moneyAdded = in.nextDouble();
check.processDeposit(moneyAdded);
} else if (choice.equalsIgnoreCase("Withdraw")) {
System.out.println("How much money would you like to withdraw?");
moneySubtracted = in.nextDouble();
check.processCheck(moneySubtracted);
} else if (choice.equalsIgnoreCase("Balance")) {
System.out.printf("$%.2f%n", check.myBalance);
} else if (choice.equalsIgnoreCase("Exit")) {
break;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句