Сканер JAVA определенные требования - PullRequest
0 голосов
/ 13 сентября 2018

Для моего кода мне нужно сделать сканер, который захватывает пользовательский ввод для моего школьного проекта. Тем не менее, ввод может быть только трехзначным числом, иначе он должен побудить пользователя снова запросить ввод? Как бы я мог сделать это с JAVA? Спасибо.

Это то, что у меня сейчас есть, но оно не работает

    Scanner sc = new Scanner(System.in);

    while(sc.nextInt() > 99 && sc.nextInt() < 1000) {
        int n = sc.nextInt();
    }

У меня сейчас есть это, но оно не работает.

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Я бы подтвердил, что у вас есть int в сканере, прежде чем пытаться присвоить его переменной int.Вы можете сделать это с помощью метода Scanner.hasNextInt().

Попробуйте что-то подобное и посмотрите, работает ли оно для вашего приложения:

Scanner scanner = new Scanner(System.in);
        int input = 0;

        while(input < 100 || input > 999) {
            System.out.print("Please enter a 3-digit number:");
            if(scanner.hasNextInt()) {
                input = scanner.nextInt();
            }
            else {
                scanner.next();
            }
        }
0 голосов
/ 13 сентября 2018

Это может помочь:

public static void main(String[] args) throws Exception {

    int x;

    Scanner in = new Scanner(System.in);
    System.out.print("Enter a number greater than 99 and less than 1000: ");
    x = in.nextInt();

    while (x >= 1000 || x <= 99) {
        System.out.println("Invalid number: Enter in range");
        x = in.nextInt();
    }

    in.close();

}
0 голосов
/ 13 сентября 2018

Scanner.nextInt() попросит вас ввести данные, поэтому вы не должны использовать их во время выполнения условия.

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while(!(n > 99 && n < 1000)) {
    n = sc.nextInt();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...