Создание консольного меню для пользователя, чтобы сделать выбор - PullRequest
1 голос
/ 09 ноября 2011

Выполнение программы в Eclipse с Java. Что я хочу сделать, так это когда я запускаю программу, я хочу предоставить пользователю выбор. У меня есть все расчеты и т.д., я просто не уверен, как сделать это меню, чтобы предложить пользователю выбор. Пример того, что я ищу:

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 ]

4 голосов
/ 09 ноября 2011

Вы можете использовать сканер для считывания ввода с 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.
    }
}

Обратите внимание, что для этого пользователю потребуется ввести число и нажать клавишу ввода, прежде чем продолжить выполнение. Если они введут неверный ввод, это остановится; если вы хотите, чтобы он снова их запрашивал, вам нужно будет обернуть это в какой-то цикл, в зависимости от того, как вы хотите, чтобы система работала.

Scanner#nextInt вполне может вызвать исключение, если пользователь введет что-то, что не может быть проанализировано в целое число. Вы можете поймать это исключение и обработать его соответствующим образом. Если пользователь вводит целое число, выходящее за пределы диапазона допустимых параметров (т. Е. Оно не находится в диапазоне 1-4), оно попадает в ветвь default оператора switch, где вы можете снова обработать случай ошибки, как вы хотите.

3 голосов
/ 09 марта 2014

Для простоты я бы рекомендовал использовать статический метод, который возвращает целочисленное значение параметра.

    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.
    }

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...