Бесконечный l oop на .hasNext () - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь прочитать файл и извлечь наибольшее число. Я хочу прочитать файл до конца, но hasNext () продолжает давать мне истину. Когда я попытался изменить это на hasNextInt (), он никогда не входил, даже когда мои символы были целыми числами. Как мне выбраться из l oop и правильно прочитать мои целые числа? Помощь будет высоко ценится.

int maxScore=0;
        int score = 0;
        Scanner scan = new Scanner("PacManHighScore");
        while(scan.hasNext()) {
            if(scan.hasNextInt()) {
                score = scan.nextInt();
            }
            System.out.println(score);
            if(score > maxScore) {
                maxScore = score;
            }
        }
        scan.close();

1 Ответ

2 голосов
/ 17 марта 2020

Вы забыли пропустить не int значение, поэтому застряли в бесконечном l oop.

Попробуйте код ниже.

int maxScore=0;
int score = 0;
Scanner scan = new Scanner("PacManHighScore");
while(scan.hasNext()) {
    if(scan.hasNextInt()) {
        score = scan.nextInt();
    }else{
        scan.next();
    }
    System.out.println(score);
    if(score > maxScore) {
        maxScore = score;
    }
}
scan.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...