【问题标题】:Getting error in the following Java program. Why?在以下 Java 程序中出现错误。为什么?
【发布时间】:2015-02-04 13:05:59
【问题描述】:

我收到错误为“线程“主”中的异常 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;

【问题讨论】:

  • 因为您没有在第二个 [] 中输入数字,这意味着所有二维数组都是 NULL。因此,您要么需要在初始化变量时定义该大小,要么需要在 for 循环中添加第二个数组,例如:pas[0] = new double[size]; 然后执行pas[0][0] = 1;

标签: java eclipse


【解决方案1】:

你只用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];

【讨论】:

    【解决方案2】:

    你没有正确初始化你的数组

    double pas[][]= new double[rows][here columns are missing];
    

    【讨论】:

    • 这似乎不是 OP 想要的初始化,因为看起来他正在构建一个三角形,所以每行的列数应该不同。
    【解决方案3】:

    在二维数组中,您还必须指定列大小。

    double pas[][]= new double[rows][cols];
    

    【讨论】:

      【解决方案4】:
      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("");
          }
      }
      }
      

      我不知道你的业务逻辑,但上面会运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-27
        相关资源
        最近更新 更多