查找BankMenu方法中的错误

查找BankMenu方法中的错误

问题描述:

bankTellerMenu()方法旨在显示银行出纳员菜单并重复获取用户的选择并执行该选择。如果用户做出了无效选择,菜单才会重新显示。该方法中存在语法和逻辑错误。如果这些错误得到纠正,那么实际输出将与下面显示的匹配。 更正代码并通过产生下面的输出来测试它。我强调了用户的反应,使他们脱颖而出。查找BankMenu方法中的错误

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

FIT银行

  1. 存款
  2. 撤柜
  3. 客户端菜单
  4. 帐户菜单
  5. 退出

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

FIT银行

  1. 存款
  2. 撤柜
  3. 客户端菜单
  4. 帐户菜单
  5. 退出

选项必须只1-5

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

*调用退出()

选择其他选项(1-5):

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

现在问题开始了,我已经尝试过编码该方法,但它似乎无法调用withdraw()或任何其他选择,当我输入1和5之间的值。有人可以帮助请?

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()"); 

       } 


    } 
} 
+2

这是功课吗? – Bernard 2012-04-04 14:53:41

+0

这个条件是否正确? while(option> = 1 && option kosa 2012-04-04 14:53:44

+0

其练习题提高我的编程技巧@thinksteep哦!我现在明白你向我解释过,它在代码中似乎很难想象。 – user1313137 2012-04-04 15:23:07

首先,你是否熟悉the switch statement?如果你不是,那么我认为这将是了解它的最佳时机。

现在的问题从现在开始,我已经尝试了编码的方法,但它似乎并没有能够调用退出()或任何其他的选择,当我输入一个值是1和5之间。

没有做家庭作业:如果你想调用的方法withdraw,你必须有一个withdraw方法来调用。那么你的withdraw方法在哪里?或者你是否应该打印出你打电话给withdraw方法而不实际调用它?

+0

我并不需要调用的方法,只需说它已完成,我只是说调用撤消等,谢谢switch语句链接,我会更多地考虑它 – user1313137 2012-04-04 15:32:41

您及早关闭您的回路。移动 }while(option >=1 && option < 5);之前的所有if(option == ...)声明。否则这将无法按预期工作。

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

+0

感谢您的建议,现在它工作,但问题是,当我输入一个值,可以启动invoke方法,它产生的输出: \t FIT银行 1.存款 2.取款 3.客户端菜单 4.帐户菜单 5.退出 选择一个选项(1-5):3 *** \t调用clientMenu() 选择另一个选项(1-5): user1313137 2012-04-04 15:35:31