2012-04-04 7 views
0

メソッドbankTellerMenu()は、銀行窓口のメニューを表示し、ユーザーの選択を繰り返し取得し、その選択を実行するためのものです。ユーザーが無効な選択を行った場合にのみメニューが再表示されます。このメソッドには構文エラーと論理エラーがあります。これらのエラーが修正された場合、実際の出力は以下に表示されるものと一致します。 以下の出力を生成してコードを修正し、テストします。私はそれらを際立たせるためにユーザーの反応を強調しました。BankMenuメソッドのエラーを見つける

-------------------------期待される出力------------------- -------

FIT銀行

  1. 預金
  2. アカウントメニュー
  3. クライアントメニューを撤回、終了

オプション(1-5)を選択します。

FIT銀行

  1. 預金
  2. クライアントメニュー
  3. アカウントメニュー
  4. 出口
を撤回

オプションのみ1-5

オプション(1-5)を選択しなければなりません:5:)

*呼び出しは、(撤退

は別のオプション(1-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()"); 

       } 


    } 
} 
+2

この宿題はありますか? – Bernard

+0

この条件は正しいですか? while(オプション> = 1 &&オプション<5);オプションが1と5の間であればプロンプトを表示し続けますか? – kosa

+0

私のプログラミングスキルを向上させる練習のためのその質問@thinksteepああ!私はあなたが私に説明したので、コードで考えるのは本当に難しいように思えます。 – user1313137

答えて

0

まずは:the switch statementに精通していますか?もしあなたがそうでないなら、私はこれがそれについて学ぶ絶好の時だと思う。

ここで問題が始まりますが、私はメソッドをコーディングしてみましたが、1から5までの値を入力するとwithdraw()や他の選択肢を呼び出せないようです。あなたの宿題をせずに

:あなたはwithdrawメソッドを呼び出したい場合は、起動するwithdraw方法を持っている必要があります。あなたのwithdrawメソッドはどこにありますか?または、実際に呼び出さずにwithdrawメソッドを呼び出していることを印刷するだけですか?

+0

私は呼び出しのためのメソッドを必要としませんでした、ちょうどそれが行われたと言う必要があるが、私はそれを見てくださいスイッチのステートメントのリンクのためにも、 – user1313137

0

あなたは早期に、あなたのループを閉じています。 }while(option >=1 && option < 5);の直前にあるif(option == ...)ステートメントをすべて移動します。そうしないと、期待どおりに動作しません。

また、ifステートメントの代わりにswitchステートメントを使用することをお勧めします。

+0

勧告に感謝、それが機能するようになりましたが、問題は、iが入力invokeメソッドを起動することができた値を、それが出力を生成することである: \t FIT銀行 1.預金 2. 3.クライアントメニュー を撤回します4.アカウントメニュー 5. Exit オプション(1-5)を選択します。3 *** \t invoke clientMenu() 別のオプション(1-5)を選択します:<-----この最後の部分はありません。あなたがオプション1-4を選択したときにこの部分を削除する方法はありますか? – user1313137

関連する問題