Сканер строк Java не ожидает получения информации, а сразу переходит к следующему оператору. Как ждать инфу? [дубликат]

На этот вопрос уже есть ответ здесь:

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

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

Как настроить код таким образом, чтобы вторая строка печаталась и ожидала ввода строки перед печатью третьей строки?

import java.util.Scanner;

public class HighestScore {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter the number of students: ");
        int numOfStudents = input.nextInt();

        System.out.print("Enter a student's name: ");
        String student1 = input.nextLine();

        System.out.print("Enter that student's score: ");
        int score1 = input.nextInt();

        for (int i = 0; i <= numOfStudents - 1; i++) {

            System.out.println("Enter a student's name: ");
            String student = input.nextLine();

            System.out.println("Enter that student's score: ");
            int score = input.nextInt();

            if (score > score1) {
            student1 = student;
            score1 = score;
            }
        }
        System.out.println("Top student " +
        student1 + "'s score is " + score1);
    }
}
26
задан Prince John Wesley 24 October 2011 в 14:53
поделиться

1 ответ

    System.out.print("Enter the number of students: ");
    int numOfStudents = input.nextInt();
    // Eat the new line
    input.nextLine();
    System.out.print("Enter a student's name: ");
    String student1 = input.nextLine();
15
ответ дан 28 November 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: