如何在没有nullpointerexception错误的情况下显示锯齿状数组 [英] How do I display my jagged array without nullpointerexception error
本文介绍了如何在没有nullpointerexception错误的情况下显示锯齿状数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
每次运行我的代码时,都会收到此错误:
线程main中的异常java.lang.NullPointerException
我尝试过:
import java.util.Scanner;
public class JaggedArray
{
public static void main(String [] args)
{
int [] [] jArr;
jArr = new int [25] [];
System.out.println(请输入学生人数:);
Scanner sc = new Scanner(System.in);
int students = sc.nextInt();
for(int i = 0; i< students; ++ i)
{
System.out.println(学生多少年级+(i + 1)+有:);
int gradeNum = sc.nextInt();
jArr [i] = new int [gradeNum];
for(int j = 0; j< gradeNum; ++ j)
{
System.out.println(Please enter grade+(j + 1)+: );
jArr [i] [j] = sc.nextInt();
}
}
System.out.println(你的数组是:);
//在我的方法中显示一个错误,调用
displayArray(jArr);
public static void displayArray(int [] [] jArr)
{
for(int i = 0; i< jArr.length) ; i ++)
{
//它显示了这个嵌套for循环的错误
for(int j = 0; j< jArr [i] .length; j ++)
{
System.out.print(jArr [i] [j] +);
}
System.out.println();
}
}
}
解决方案
Quote:jArr = new int [25] [];
以上行是罪魁祸首。向下移动数组定义:
// ...
扫描仪sc = 新扫描仪(System.in);
int students = sc.nextInt();
jArr = new int [students] []; // < - 这是正确的地方(因为你知道'学生')
for ( int i = 0 ; i < students; ++ i)
// ..
Every time I run my code, i get this error:
Exception in thread "main" java.lang.NullPointerException
What I have tried:
import java.util.Scanner; public class JaggedArray { public static void main(String[] args) { int[][] jArr; jArr = new int[25][]; System.out.println("Please enter number of students:"); Scanner sc = new Scanner(System.in); int students = sc.nextInt(); for (int i = 0; i < students; ++i) { System.out.println("How many grades does student " + (i+1) + " have:"); int gradeNum = sc.nextInt(); jArr[i] = new int[gradeNum]; for (int j = 0; j < gradeNum; ++j) { System.out.println("Please enter grade " + (j+1) + ":"); jArr[i][j] = sc.nextInt(); } } System.out.println("Your array is: "); //It shows an error in my method calling displayArray(jArr); public static void displayArray(int[][] jArr) { for(int i = 0; i < jArr.length; i++) { //It shows an error on this nested for loop for(int j = 0; j < jArr[i].length; j++) { System.out.print(jArr[i][j] + " "); } System.out.println(); } } }
解决方案
Quote:jArr = new int[25][];
The above line is the culprit. Move down a bit the array definition:
//... Scanner sc = new Scanner(System.in); int students = sc.nextInt(); jArr = new int[students][]; // <- this is the right place (because you know 'students') for (int i = 0; i < students; ++i) //..
这篇关于如何在没有nullpointerexception错误的情况下显示锯齿状数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文