执行方法后如何在switch case中返回主菜单?

时间:2013-04-07 01:17:25

标签: java

如何在所选方法执行后再次显示菜单?

我有菜单选项打印到控制台。然后它需要用户输入(1 - 6),按方法调用,然后返回菜单,供用户再次从菜单中选择。

执行所选方法后,程序才会结束。

public static void main (String[] arg) {

    Scanner kbd = new Scanner(System.in);

    String mainMenu = ("Select a choice from the menu: \n" 
            + "1. Add new DVD entry\n" 
            + "2. Look Up DVD Entry\n"
            + "3. Display DVDs By Category\n" 
            + "4. Remove DVD Entry\n"
            + "5. Save Data\n" 
            + "6. Exit");

    System.out.println(mainMenu);

    menuChoice = kbd.nextInt();

    while (menuChoice < 1 || menuChoice > 6) {
        System.out.print("\nError! Incorrect choice.\n");
        System.out.println(mainMenu);
        menuChoice = kbd.nextInt();
    }

    switch (menuChoice) {
    case 1: {
        // method code
        }
        else {
            // method code
            return;
        }
    }

    case 2: {
        // method code
        return;
    }

    case 3: {
        // method code
        return;
    }

    case 4: {
        // method code
        return;
    }   

    case 5: {
        // method code
        return;
    }

    case 6: {
        // method code
        System.exit(0);
        return;
    }
    }
}

2 个答案:

答案 0 :(得分:5)

使用do while

do
{
    System.out.println(mainMenu);

    menuChoice = kbd.nextInt();

   ... switch/case ...
   ... remove the return statements from your cases.

} while (menuChoice != 6);

您还必须从return中删除case。否则它将退出主要。将其替换为break;

这就是切换案例需要的方式

switch (menuChoice) 
{
    case 1: 
        Do what you want. 
        break;
    case 2:
        ...
        break;
    default:
        ...
        break;
}

切换案例中通常不需要{if

答案 1 :(得分:0)

将您的代码包装在

  while(menuChoice != 6) 
    { 
      ... 
    }