2012-04-04 66 views
0

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 <5);如果選項介於1和5之間,您是否想繼續提示? – kosa 2012-04-04 14:53:44

+0

其練習題提高我的編程技巧@thinksteep哦!我現在明白你向我解釋過,它在代碼中似乎很難想象。 – user1313137 2012-04-04 15:23:07

回答

0

首先,你是否熟悉the switch statement?如果你不是,那麼我認爲這將是瞭解它的最佳時機。

現在的問題從現在開始,我已經嘗試了編碼的方法,但它似乎並沒有能夠調用退出()或任何其他的選擇,當我輸入一個值是1和5之間。

沒有做家庭作業:如果你想調用的方法withdraw,你必須有一個withdraw方法來調用。那麼你的withdraw方法在哪裏?或者你是否應該打印出你打電話給withdraw方法而不實際調用它?

+0

我並不需要調用的方法,只需說它已完成,我只是說調用撤消等,謝謝switch語句鏈接,我會更多地考慮它 – user1313137 2012-04-04 15:32:41

0

您及早關閉您的迴路。移動 }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):<-----這最後一部分我不需要,當我選擇選項1-4時,你有什麼建議如何去除這部分? – user1313137 2012-04-04 15:35:31