创建控制台菜单供用户进行选择

时间:2011-11-09 01:11:31

标签: java eclipse menu

使用Java在Eclipse中执行程序。我想要做的是当我执行程序时,我希望向用户提供一个选择。我完成了所有的计算等,我只是不确定如何使这个菜单为用户提供选择。我正在寻找的例子:

To enter an original number: Press 1
To encrypt a number: Press 2
To decrypt a number: Press 3
To quit: Press 4
Enter choice:


public static void main(String[] args) {
    Data data = new Data(); 
    data.menu(); }
}

2 个答案:

答案 0 :(得分:4)

您可以使用扫描仪从System.in读取输入,如下所示:

public static void main(String[] args) {
    Data data = new Data();
    data.menu();

    Scanner scanner = new Scanner(System.in);
    int choice = scanner.nextInt();

    switch (choice) {
        case 1:
            // Perform "original number" case.
            break;
        case 2:
            // Perform "encrypt number" case.
            break;
        case 3:
            // Perform "decrypt number" case.
            break;
        case 4:
            // Perform "quit" case.
            break;
        default:
            // The user input an unexpected choice.
    }
}

请注意,这将要求用户输入数字并按Enter键,然后再继续执行。如果他们输入无效输入,这将停止;如果你想让它再次提示它们,你将需要将它包装在某种循环中,具体取决于你希望系统的行为。

如果用户输入无法解析为整数的内容,

Scanner#nextInt可能会抛出异常。您可以捕获此异常并适当地处理它。如果用户输入的超出有效选项范围的整数(即它不在1-4的范围内),则它将落入default语句的switch分支,其中你可以再次处理错误案例。

答案 1 :(得分:3)

为简单起见,我建议使用一个返回选项整数值的静态方法。

    public static int menu() {

        int selection;
        Scanner input = new Scanner(System.in);

        /***************************************************/

        System.out.println("Choose from these choices");
        System.out.println("-------------------------\n");
        System.out.println("1 - Enter an original number");
        System.out.println("2 - Encrypt a number");
        System.out.println("3 - Decrypt a number");
        System.out.println("4 - Quit");

        selection = input.nextInt();
        return selection;    
    }

完成方法后,您将在主方法中相应地显示它,如下所示:

    public static void main(String[] args) {

        int userChoice;
        Scanner input = new Scanner(System.in);

        /*********************************************************/

        userChoice = menu();

        //from here you can either use a switch statement on the userchoice 
        //or you use a while loop (while userChoice != the fourth selection)
        //using if/else statements to do your actually functions for your choices.
    }

希望这会有所帮助。