Estoy escribiendo un programa simple que solicita que un usuario ingrese un número de estudiantes, luego le pide al usuario que ingrese el nombre y puntaje de cada estudiante para determinar qué estudiante tiene el puntaje más alto.La entrada de Java String Scanner no espera la información, se mueve directamente a la siguiente instrucción. ¿Cómo esperar información?
He escrito el código del programa y compila. La primera línea pide un número de estudiantes y espera la entrada. Se supone que la segunda línea debe pedir el nombre de un estudiante y esperar la entrada, luego debe imprimir una tercera línea y preguntar el puntaje de ese estudiante, y esperar la entrada, pero después de que se imprime la segunda línea, se llama inmediatamente a la tercera línea. no espere la entrada) y luego obtengo un error de tiempo de ejecución al tratar de ingresar la información solicitada después de la tercera línea.
¿Cómo ajusto el código para que se imprima la segunda línea y espere a que se ingrese una cadena antes de imprimir la tercera línea?
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);
}
}
Brilliant! ¡Funciona! ¡Gracias! – user1011064