我收到错误为“线程中的异常”主“java.lang.NullPointerException 在Pascal.main(Pascal.java:8)“
public class Pascal {
public static void main(String args[]){
int rows,i,j,k;
rows=Integer.parseInt(args[0]);
double pas[][]= new double[rows][];
pas[0][0]=1; //the line of error
for (i=1;i<=rows;i++){
for (j=1;j<=i;j++){
pas[i-1][j-1]=pas[i-2][j-2]+pas[i-2][j-1];
}
}
for(i=0;i<rows;i++){
for(j=0;j<=i;j++){
System.out.print(pas[i][j]);
}
System.out.println("");
}
}
}
为什么我在线收到错误:pas [0] [0] = 1;
答案 0 :(得分:2)
您只使用double pas[][]= new double[rows][];
初始化外部数组,因此pas[0]
仍为null
,而pas[0][0]
为NullPointerException
。
更改
pas[0][0]=1;
到
pas[0] = new double[1];
pas[0][0]=1;
您还必须为其他行调用pas[i] = new double[some-length];
。
答案 1 :(得分:1)
你没有正确初始化你的数组
double pas[][]= new double[rows][here columns are missing];
答案 2 :(得分:0)
在二维数组中,您还必须指定列大小。
double pas[][]= new double[rows][cols];
答案 3 :(得分:0)
package com.survey.ui;
class demo {
public static void main(String args[]){
int rows,i,j,k;
rows=Integer.parseInt(args[0]);
double pas[][]= new double[rows][Integer.parseInt(args[0])];
pas[0][0]=1;
for (i=2;i<=rows;i++){
for (j=2;j<=i;j++){
pas[i-1][j-1]=pas[i-2][j-2]+pas[i-2][j-1];
}
}
for(i=0;i<rows;i++){
for(j=0;j<=i;j++){
System.out.print(pas[i][j]);
}
System.out.println("");
}
}
}
我不了解您的业务逻辑,但上面会运行。