方法bankTellerMenu() 旨在显示银行柜员菜单并重复获取用户的选择并执行该选择。仅当用户做出无效选择时才重新显示菜单。该方法存在语法和逻辑错误。如果这些错误得到纠正,那么实际输出将与下面显示的相匹配。更正代码并通过生成下面的输出对其进行测试。我已经强调了用户的反应,以使他们脱颖而出。
------------------------- 预期输出 ------------------------ ---
FIT银行
- 订金
- 提取
- 客户菜单
- 账户菜单
- 出口
选择一个选项(1-5):7
FIT银行
- 订金
- 提取
- 客户菜单
- 账户菜单
- 出口
选项必须只有 1-5
选择一个选项(1-5):2
*调用withdraw()
选择另一个选项 (1-5):5
------------------------- 预期输出 ------------------------ ---
现在问题开始了,我已经尝试对该方法进行编码,但是当我输入一个介于 1 和 5 之间的值时,它似乎无法调用withdraw() 或任何其他选择。有人可以帮忙吗?
import java.util.*;
public class FITBank
{
//There are no errors in the main method.
public static void main(String[] args)
{
//Just run bank teller menu.
bankTellerMenu();
}
public static void bankTellerMenu()
{
Scanner reader = new Scanner(System.in);
int option = 1;
String message = null;
do{
System.out.println("\n\tFIT Bank");
System.out.println("1. Deposit");
System.out.println("2. Withdraw");
System.out.println("3. Client Menu");
System.out.println("4. Account Menu");
System.out.println("5. Exit");
if(message!=null){
System.out.println("\t"+message);
}
System.out.print("Select an option (1-5): ");
option = reader.nextInt();
if(option < 1 || option > 5){
message = new String("Option must be only 1-5");
option=1;
}
}while(option <1 && option > 5);
if(option == 1) {
System.out.println("***\tInvoke deposit()");
}
if(option == 2){
System.out.println("***\tInvoke withdraw()");
}
if(option == 3)
{ System.out.println("***\tInvoke clientMenu()");
}
if(option==4){
System.out.println("***\tInvoke accountMenu()");
}
}
}