Я пытаюсь скомпилировать код, который просит пользователя ввести данные ученика и сохраняет 10 из них в массиве. Я знаю, что могу сделать это с записями, но я хотел попробовать эту программу, используя массивы. Я разделил программу на несколько методов, но после выполнения она работает правильно при вводе 10 имен учащихся, но затем выдает ИСКЛЮЧЕНИЕ INPUT MISMATCH при выполнении ввода для идентификатора студента. Может кто-нибудь сказать мне, что не так и как я могу это исправить.
import java.util.Scanner;
class StudentInfo {
public static void main (String [] args){
String nameStudent [] = takeNameInput();
int idStudent [] = takeIDInput();
int markStudent [] = takeMarkInput();
printArrays(nameStudent, idStudent, markStudent);
System.exit(0);
}
public static String [] takeNameInput(){
Scanner scanner = new Scanner(System.in);
String studentName [] = new String[10];
for(int i = 0; i < studentName.length; i += 1){
System.out.println(" ");
System.out.println("ENTER THE NAME OF 10 STUDENTS");
String name = scanner.nextLine();
studentName [i] = name;
}
return studentName;
}
public static int [] takeIDInput(){
Scanner scanner = new Scanner(System.in);
int studentID [] = new int[10];
for(int b = 0; b < studentID.length; b += 1){
System.out.println(" ");
System.out.println("ENTER THE STUDENT ID OF 10 STUDENTS");
int id = scanner.nextInt();
studentID [b] = id;
}
return studentID;
}
public static int [] takeMarkInput(){
Scanner scanner = new Scanner(System.in);
int studentMark [] = new int [10];
for(int z = 0; z < studentMark.length; z += 1){
System.out.println(" ");
System.out.println("ENTER THE MARKS OF 10 STUDENTS");
int mark = scanner.nextInt();
studentMark [z] = mark;
}
return studentMark;
}
public static void printArrays(String [] nameStudent, int [] idStudent, int [] markStudent){
System.out.println(" ");
for (int c = 0; c < nameStudent.length; c++){
System.out.println("NAME: "+nameStudent[c]+", ID: "+idStudent[c]+", MARK: "+markStudent[c]);
}
}
}