1

メソッドが呼び出されていない次の単純なメインメニューがありますが、それぞれで終了オプションを選択したときに、サブメニューを終了してメインメニューに戻す方法がわかりません。 私は非常に初心者であり、このプロジェクトは非常に重要です。失敗した場合、すでに支払いを済ませているにもかかわらず、試験を行うことができなくなります:(

メニューコード(これまでのところ)は次のとおりです。

* //メニューは、書籍、メンバー、従業員、ローン、統計、終了の6つのリストで構成されます。

// 1から4までのこれらのリストは、挿入、検索、削除、編集、すべてリスト、終了で構成されるサブメニューを開きます。

//リスト5は、トップ5の本、トップ5のメンバー、今月の従業員、リストの延滞、終了で構成されます。

    import java.util.*;
    import java.io.*;
    public class Menu
      {
    public static void main(String args[]) throws IOException
      {
    Scanner sc = new Scanner(System.in);
    int option; 

    do 
    { 
    System.out.println("Main Menu:"); 
    System.out.println("1. Books"); 
    System.out.println("2. Members"); 
    System.out.println("3. Employees"); 
    System.out.println("4. Loans");
    System.out.println("5. Statistics");
    System.out.println("6. Exit");
    System.out.println("Enter your option [1,2,3,4,5,6]:");
    option = sc.nextInt();

    switch (option) {
        case 1: System.out.println("Books Sub-Menu:");
                System.out.println("1. Insert"); 
                System.out.println("2. Search"); 
                System.out.println("3. Delete"); 
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit"); 
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                option = sc.nextInt();

                switch (option){
                    case 1:
                    case 2: 
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    option = sc.nextInt();
                    break;
                }
        break;

        case 2: System.out.println("Members Sub-Menu:");
                System.out.println("1. Insert"); 
                System.out.println("2. Search"); 
                System.out.println("3. Delete"); 
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit"); 
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                option = sc.nextInt();

                 switch (option){
                    case 1: 
                    case 2: 
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    option = sc.nextInt();
                    break;
                }
        break;

        case 3: System.out.println("Employees Sub-Menu:");
                System.out.println("1. Insert"); 
                System.out.println("2. Search"); 
                System.out.println("3. Delete"); 
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit"); 
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                option = sc.nextInt();

                 switch (option){
                    case 1: 
                    case 2: 
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    option = sc.nextInt();
                    break;
                }
        break;

        case 4: System.out.println("Loans Sub-Menu:");
                System.out.println("1. Insert"); 
                System.out.println("2. Search"); 
                System.out.println("3. Delete"); 
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit"); 
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                option = sc.nextInt();

                 switch (option){
                    case 1: 
                    case 2: 
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    option = sc.nextInt();
                    break;
                }
        break;

        case 5: System.out.println("Statistics Sub-Menu:");
                System.out.println("1. Top 5 Books"); 
                System.out.println("2. Top 5 Members"); 
                System.out.println("3. Emplyee of the Month"); 
                System.out.println("4. List Overdue");
                System.out.println("5. Exit"); 
                System.out.println("Enter your option [1,2,3,4,5]:");
                option = sc.nextInt();

                 switch (option){
                    case 1: 
                    case 2: 
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    option = sc.nextInt();
                    break;
                }
        break;

        case 6: System.out.println("You selected to Exit");
                System.exit(0);
                break;
    }

   }  while (option!=6);

    }
    }*
4

1 に答える 1

0

1 つの変数で 2 つの異なるスイッチを制御することは避けてください。ここでは、オプション変数を使用して、内部スイッチと外部スイッチの両方を制御しました。オプションが 6 の場合、コントロールは両方のスイッチから切り離されます。別の変数を使用して内側のループを制御します。次のコードで subOption を使用しました。

また、サブメニュー機能は、ユーザーが終了するまで機能する必要があります。内側のスイッチも中に入れたほうがいいです。

    public class Menu {
    public static void main(String args[]) throws IOException {
    Scanner sc = new Scanner(System.in);
    int option, subOption;

    do {
        System.out.println("Main Menu:");
        System.out.println("1. Books");
        System.out.println("2. Members");
        System.out.println("3. Employees");
        System.out.println("4. Loans");
        System.out.println("5. Statistics");
        System.out.println("6. Exit");
        System.out.println("Enter your option [1,2,3,4,5,6]:");
        option = sc.nextInt();

        switch (option) {
        case 1: {

            do {
                System.out.println("Books Sub-Menu:");
                System.out.println("1. Insert");
                System.out.println("2. Search");
                System.out.println("3. Delete");
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit");
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                subOption = sc.nextInt();

                switch (subOption) {
                case 1: {
                    System.out.println("in Insert");
                    break;
                }
                case 2: {
                    System.out.println("in Search");
                    break;
                }
                case 3: {
                    System.out.println("in Delete");
                    break;
                }
                case 4: {
                    System.out.println("in Edit");
                    break;
                }
                case 5: {
                    System.out.println("in List All");
                    break;
                }
                case 6: {
                    System.out.println("in Exit");
                    break;
                }
                // option = sc.nextInt();
                }
            } while (subOption != 6);
            break;
        }

        case 2:

        {

            do {
                System.out.println("Members Sub-Menu:");
                System.out.println("1. Insert");
                System.out.println("2. Search");
                System.out.println("3. Delete");
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit");
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                subOption = sc.nextInt();

                switch (subOption) {
                case 1: {
                    System.out.println("in Insert");
                    break;
                }
                case 2: {
                    System.out.println("in Search");
                    break;
                }
                case 3: {
                    System.out.println("in Delete");
                    break;
                }
                case 4: {
                    System.out.println("in Edit");
                    break;
                }
                case 5: {
                    System.out.println("in List All");
                    break;
                }
                case 6: {
                    System.out.println("in Exit");
                    break;
                }
                // option = sc.nextInt();
                }
            } while (subOption != 6);
            break;
        }

        case 3:

        {

            do {
                System.out.println("Employees Sub-Menu:");
                System.out.println("1. Insert");
                System.out.println("2. Search");
                System.out.println("3. Delete");
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit");
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                subOption = sc.nextInt();

                switch (subOption) {
                case 1: {
                    System.out.println("in Insert");
                    break;
                }
                case 2: {
                    System.out.println("in Search");
                    break;
                }
                case 3: {
                    System.out.println("in Delete");
                    break;
                }
                case 4: {
                    System.out.println("in Edit");
                    break;
                }
                case 5: {
                    System.out.println("in List All");
                    break;
                }
                case 6: {
                    System.out.println("in Exit");
                    break;
                }
                // option = sc.nextInt();
                }
            } while (subOption != 6);
            break;
        }

        case 4:

        {

            do {
                System.out.println("Loans Sub-Menu:");
                System.out.println("1. Insert");
                System.out.println("2. Search");
                System.out.println("3. Delete");
                System.out.println("4. Edit");
                System.out.println("5. List All");
                System.out.println("6. Exit");
                System.out.println("Enter your option [1,2,3,4,5,6]:");
                subOption = sc.nextInt();

                switch (subOption) {
                case 1: {
                    System.out.println("in Insert");
                    break;
                }
                case 2: {
                    System.out.println("in Search");
                    break;
                }
                case 3: {
                    System.out.println("in Delete");
                    break;
                }
                case 4: {
                    System.out.println("in Edit");
                    break;
                }
                case 5: {
                    System.out.println("in List All");
                    break;
                }
                case 6: {
                    System.out.println("in Exit");
                    break;
                }
                // option = sc.nextInt();
                }
            } while (subOption != 6);
            break;

        }

        case 5: {

            do {
                System.out.println("Statistics Sub-Menu:");
                System.out.println("1. Top 5 Books");
                System.out.println("2. Top 5 Members");
                System.out.println("3. Emplyee of the Month");
                System.out.println("4. List Overdue");
                System.out.println("5. Exit");
                System.out.println("Enter your option [1,2,3,4,5]:");
                subOption = sc.nextInt();

                switch (subOption) {
                case 1: {
                    System.out.println("in Top 5 Books");
                    break;
                }
                case 2: {
                    System.out.println("in Top 5 Members");
                    break;
                }
                case 3: {
                    System.out.println("in Emplyee of the Month");
                    break;
                }
                case 4: {
                    System.out.println("in List Overdue");
                    break;
                }

                case 5: {
                    System.out.println("in Exit");
                    break;
                }
                // option = sc.nextInt();
                }
            } while (subOption != 6);
            break;

        }

        case 6:
            System.out.println("You selected to Exit");
            System.exit(0);
            break;
        }

    } while (option != 6);

  }
}
于 2014-01-01T11:01:30.000 に答える