Как проверить правильность ввода пользователя в определенном диапазоне? - PullRequest
0 голосов
/ 04 апреля 2020

Я написал программу, которая запрашивает у человека строки чисел от 1 до 6 и возвращает количество бросков, которое потребовалось для получения строки. Я хочу проверить ввод, чтобы человек не вводил число больше 6 или меньше 1, и я не могу понять, как это сделать.

int SIDES = 6;
String userString = "null";
String answer = "null";
int length = 0;
do {
    do {
        System.out.print("please enter a string of 6 numbers you want to be rolled");
        userString = keyboard.next();
    while (length != SIDES) {
        System.out.println("please enter a valid string number");
        userString = keyboard.next();
    } 
        length = userString.length();
} while ( length != SIDES); // I want to add the validation to this line
dieRoll(userString);

1 Ответ

0 голосов
/ 04 апреля 2020
while (length != SIDES) {
    userString = keyboard.next();
    try {
        int userStringNumber = Integer.parseInt(userString);
        if(userStringNumber<1||userStringNumber>6)
            throw new IllegalArgumentException();
    } catch (NumberFormatException e) {
        System.out.println("Please provide a number");
    }
    catch (IllegalArgumentException ex){
        System.out.println("Number should be between 1 and 6");
    }

}
...