我有一本java書,正在做一些關於數組的練習。任何人都可以幫助我理解爲什麼這是超越界限?這個練習是創建3個班級:一個CollegeCourse;一個學生和一個InputGrades的主要方法。當我運行它時,它會很好,直到它顯示我的數組超出界限。當我即將進入第三名學生的第二門課程時,它會崩潰。爲什麼我會得到一個數組IndexOutOfBounds錯誤?
public static void main(String[] args) {
String info = null;
int infoInt = 0;
char infoChar = 0;
Scanner input = new Scanner(System.in);
CollegeCourse[] courses = new CollegeCourse[2];
for(int i = 0; i < courses.length; i++) {
courses[i] = new CollegeCourse();
}
Student[] students = new Student[3];
for(int i = 0; i < students.length; i++) {
students[i] = new Student();
}
System.out.println("Welcome to Java Programming.\n Professor, enter your students' info below.");
for(int i = 0; i < students.length; i++) {
System.out.print("\nEnter student ID >>> ");
infoInt = input.nextInt();
input.nextLine();
students[i].setStudentID(infoInt);
for(int j = 0; j < courses.length; j++) {
System.out.print("Enter course ID >>> ");
info = input.nextLine();
courses[j].setCourseID(info);
System.out.print("Enter credit hours >>> ");
infoInt = input.nextInt();
input.nextLine();
courses[j].setCreditHours(infoInt);
System.out.print("Enter letter grade >>> ");
info = input.nextLine();
info = info.toUpperCase();
info.toCharArray();
infoChar = info.charAt(0);
courses[i].setLetterGrade(infoChar);
}
}
}
我的輸出是:
Welcome to Java Programming.
Professor, enter your students' info below.
Enter student ID >>> 1468
Enter course ID >>> cis 210
Enter credit hours >>> 3
Enter letter grade >>> b
Enter course ID >>> smm 310
Enter credit hours >>> 5
Enter letter grade >>> a
Enter student ID >>> 1449
Enter course ID >>> cis 210
Enter credit hours >>> 5
Enter letter grade >>> a
Enter course ID >>> smm 310
Enter credit hours >>> 5
Enter letter grade >>> a
Enter student ID >>> 1986
Enter course ID >>> cis 210
Enter credit hours >>> 2
Enter letter grade >>> c
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Chapter08Arrays.InputGrades.main(InputGrades.java:48)
此代碼在運行時拋出一個'InputMismatchException'。 – progyammer
定義班學生和大學課程應給予 –
@MaheshKshirsagar我不認爲應該給他們。你可以想象這些類的方法在做什麼,它只會給問題添加不必要的長度 – ParkerHalo