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 に答える