나는 많은 학생을 입력하라는 간단한 프로그램을 작성한 다음 사용자에게 각 학생의 이름과 점수를 입력하여 어떤 학생이 가장 높은 점수를 얻었는지 확인하도록 요청합니다.Java 문자열 스캐너 입력이 정보를 기다리지 않고 직접 다음 문으로 이동합니다. 정보를 기다리는 방법?
나는 프로그램 코드를 작성하고 컴파일한다. 첫 번째 줄은 여러 명의 학생을 묻고 입력을 기다립니다. 두 번째 줄은 학생 이름을 묻고 입력을 기다리는 것으로 가정하고, 세 번째 줄은 그 학생의 점수를 묻고 입력을 기다려야하지만 두 번째 줄이 인쇄 된 후 세 번째 줄이 즉시 호출됩니다 (두 번째 줄은 않습니다 입력을 기다리지 말 것) 그리고 세 번째 줄 뒤에 요청 된 정보를 입력하려고 할 때 런타임 오류가 발생합니다.
두 번째 줄이 인쇄되고 세 번째 줄을 인쇄하기 전에 문자열을 입력하기를 기다리는 코드를 어떻게 조정합니까? 나는 때문에이 동작하는 Scanner
를 사용 좋아하지 않았어요하지 할 왜
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);
}
}
브릴리언트! 그것은 작동합니다! 고맙습니다! – user1011064