Tôi đang viết một chương trình đơn giản nhắc người dùng nhập một số học sinh, sau đó yêu cầu người dùng nhập tên và điểm của từng học sinh để xác định học sinh nào có điểm số cao nhất.Đầu vào Java String Scanner không chờ thông tin, di chuyển trực tiếp đến câu lệnh tiếp theo. Cách đợi thông tin?
Tôi đã viết mã chương trình và nó biên dịch. Dòng đầu tiên yêu cầu một số sinh viên và chờ đợi cho đầu vào. Dòng thứ hai được yêu cầu yêu cầu tên sinh viên và chờ đầu vào, sau đó dòng thứ ba sẽ in ans yêu cầu điểm số của học sinh đó và đợi đầu vào nhưng sau dòng thứ hai in, dòng thứ ba được gọi ngay (dòng thứ 2 không không chờ đợi cho đầu vào) và sau đó tôi nhận được một lỗi thời gian chạy khi cố gắng nhập thông tin được yêu cầu sau dòng thứ ba.
Làm cách nào để điều chỉnh mã để dòng thứ hai in và đợi chuỗi được nhập trước khi in dòng thứ ba?
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);
}
}
Tuyệt vời! Nó hoạt động! Cảm ơn bạn! – user1011064