Java for循环中的NullPointerException

Java for循环中的NullPointerException,java,arrays,for-loop,nullpointerexception,Java,Arrays,For Loop,Nullpointerexception,在下面的代码中,我试图获得我所有科目的分数。我通过for循环获得输入。但是我应该在grade数组中存储grade(“例如C”),但是我得到了一个NullPointerException。我不明白我的代码出了什么问题,因为我认为它很好。 此外,请忽略主题的名称,因为它们是瑞典语 public class Defan{ Scanner sc = new Scanner(System.in); String grade[]; String gradeName[] = {"Svenska1", "Sv

在下面的代码中,我试图获得我所有科目的分数。我通过for循环获得输入。但是我应该在grade数组中存储grade(“例如C”),但是我得到了一个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();
    }


}
公共类Defan{
扫描仪sc=新的扫描仪(System.in);
弦级[];
字符串等级名称[]={“Svenska1”、“Svenska2”、“Svenska3”、“Engelska5”、“Engelska 6”,
“Mattematik 1c”、“Mattematik 2c”、“Mattematik 3c”、“Mattematik 4”、“Idrott”、“Samhälle”、“宗教”,
“Historia”、“Biologi1”、“Biologi2”、“Fysik1”、“Fysik2”、“Kemi1”、“Kemi2”、“Franska3”、“Franska4”、“Körsång1”、“Körsång2”
,“健身中心”};
public void getInput(){

对于(int i=0;i您正在尝试在初始化grade[]数组之前使用它。请尝试

String grade[] = new String[gradeName.length] <br>
String grade[]=新字符串[gradeName.length]

在for循环
for(inti=0;i中,很明显,您必须首先分配等级数组!
在构造函数中:

final int SIZE = 1024;
grade = new String[SIZE];

实际上,在您的情况下,我更喜欢使用ArrayList而不是数组。

这不是NullPointerException的原因,但上一次迭代将尝试访问
gradeName[gradeName.length]
,这是超出范围的,因为索引是基于零的。请使用
i
数组的索引以
0
开头,以
length-1