0

方法bankTellerMenu() 旨在显示银行柜员菜单并重复获取用户的选择并执行该选择。仅当用户做出无效选择时才重新显示菜单。该方法存在语法和逻辑错误。如果这些错误得到纠正,那么实际输出将与下面显示的相匹配。更正代码并通过生成下面的输出对其进行测试。我已经强调了用户的反应,以使他们脱颖而出。

------------------------- 预期输出 ------------------------ ---

FIT银行

  1. 订金
  2. 提取
  3. 客户菜单
  4. 账户菜单
  5. 出口

选择一个选项(1-5):7

FIT银行

  1. 订金
  2. 提取
  3. 客户菜单
  4. 账户菜单
  5. 出口

选项必须只有 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()");

                }


    }
}
4

2 回答 2

0

您正在尽早关闭循环。将所有if(option == ...)语句移到 }while(option >=1 && option < 5);. 否则这将无法按预期工作。

此外,我建议使用switch语句而不是所有这些if语句。

于 2012-04-04T14:56:11.910 回答
0

首先也是最重要的:你熟悉switch 语句吗?如果你不是,那么我认为这将是了解它的最佳时机。

现在问题开始了,我已经尝试对该方法进行编码,但是当我输入一个介于 1 和 5 之间的值时,它似乎无法调用withdraw() 或任何其他选择。

无需做功课:如果要调用该withdraw方法,则必须有一个withdraw方法可以调用。那么你的withdraw方法在哪里?或者你只是应该打印你正在调用该withdraw方法而不实际调用它?

于 2012-04-04T14:56:50.213 回答