在下面的代码中,我尝试获取所有主题的评分。我通过for循环获取输入。但我应该将等级(例如“C”)存储在等级数组中,但我得到一个NullPointerException。我不明白我的代码有什么问题,因为我认为这很好。 另外,由于它们是瑞典语,因此忽略主题的名称。for循环中的NullPointerException
public class Defan{
Scanner sc = new Scanner(System.in);
String grade[];
String gradeName[] = {"Svenska1", "Svenska2", "Svenska3", "Engelska5", "Engelska 6",
"Mattematik 1c", "Mattematik 2c", "Mattematik 3c", "Mattematik 4", "Idrott", "Samhälle", "Religion",
"Historia", "Biologi1", "Biologi2", "Fysik1", "Fysik2", "Kemi1", "Kemi2", "Franska3", "Franska4", "Körsång1", "Körsång2"
, "Gymnasiearbete"};
public void getInput(){
for(int i = 0; i <= gradeName.length; i++){
System.out.println("Enter grade for " + gradeName[i] + ": ");
grade[i] = sc.nextLine();
}
}
不是NullPointerException的原因,但最后一次迭代将尝试访问'gradeName [gradeName.length]',因为索引是从零开始的,所以出界。使用'i
数组索引以'0'开始并以'length-1'结尾 –