Сбросить значение корпуса переключателя, чтобы они могли снова войти в меню ввода Java - PullRequest
0 голосов
/ 29 мая 2020

Я использую оператор switch, который работал нормально. Но если внутри переключателя возникает что-то вроде исключения, я хочу, чтобы программа вернулась и снова запросила выбор пользователей.

Я поделюсь примером кода:

while (valid != true)
{
    System.out.println("Enter a Choice \n1. Choice 1. \n2. Choice 2. \n3. Choice 3.");
    int choice = getChoice();      //Get choice just returns an integer from user input.

    switch (choice)
    {
        case 1:
            //Do something
            valid = true;
            break;

        case 2:
            //Do something
            valid = true;
            break;

        case 3:
            //Do something
            valid = true;
            break;

        default:
            System.out.println("Invalid Choice.");
    }

Итак, если что-то пошла не так, и для validChoice не было установлено значение true. Я хочу, чтобы пользователь мог повторно ввести выбор, но поскольку выбор уже установлен. Это будет go сразу в случае 3.

Некоторые вещи, которые я пробовал, включают:

Все это будет сделано, если что-то пойдет неправильно.

Установка значения null на случай, если что-то пойдет не так. (Мы надеялись, что это сработает), но java не позволяет

Установка значения 0 просто сделает go регистром по умолчанию.

1 Ответ

1 голос
/ 29 мая 2020

Попробуйте следующее:

            do {
                 System.out.println("Enter a Choice \n1. Choice 1. \n2. Choice 2. \n3. Choice 3.");
    int choice = getChoice();      //Get choice just returns an integer from user input.

    switch (choice)
    {
        case 1:
            //Do something
            valid = true;
            break;

        case 2:
            //Do something
            valid = true;
            break;

        case 3:
            //Do something
            valid = true;
            break;

        default:
            System.out.println("Invalid Choice.");
            break;
    }

            } while (valid != true);
}
}
...