public class trigon2{
   public static void main(String[] args){
      int[][] triarray=new int[10][];
      for(int i=0;i<triarray.length;i++){
         triarray[i]=new int[++i];
      }
      int k=0;
      for(int i=0;i<triarray.length;i++){
         for(int j=0;j<triarray[i].length;j++){
            j=0;
            triarray[i][j]=++k;
            System.out.println(triarray[i][j]);
         } 
      }
   }
}
//运行后,抛出异常://Exception in thread "main" java.lang.NullPointerException
//        at trigon2.main(trigon2.java:9)

解决方案 »

  1.   

    原因在于对 ++ 的误用。第一个 for 循环结束后,数组的结果实际变成了:
    triarray[0] = [I@de6ced
    triarray[1] = null
    triarray[2] = [I@c17164
    triarray[3] = null
    triarray[4] = [I@1fb8ee3
    triarray[5] = null
    triarray[6] = [I@61de33
    triarray[7] = null
    triarray[8] = [I@14318bb
    triarray[9] = null建议楼主避免使用 ++i,而用更加清晰易懂的 i+1。
    另外,j=0 那一句会造成无限循环。 最后楼主想得到的是不是这个: 
    triarray[0][0]=1
    triarray[1][0]=2
    triarray[1][1]=3
    triarray[2][0]=4
    triarray[2][1]=5
    triarray[2][2]=6
    triarray[3][0]=7
    triarray[3][1]=8
    triarray[3][2]=9
    triarray[3][3]=10
    triarray[4][0]=11
    triarray[4][1]=12
    triarray[4][2]=13
    triarray[4][3]=14
    triarray[4][4]=15
    triarray[5][0]=16
    triarray[5][1]=17
    triarray[5][2]=18
    triarray[5][3]=19
    triarray[5][4]=20
    triarray[5][5]=21
    triarray[6][0]=22
    triarray[6][1]=23
    triarray[6][2]=24
    triarray[6][3]=25
    triarray[6][4]=26
    triarray[6][5]=27
    triarray[6][6]=28
    triarray[7][0]=29
    triarray[7][1]=30
    triarray[7][2]=31
    triarray[7][3]=32
    triarray[7][4]=33
    triarray[7][5]=34
    triarray[7][6]=35
    triarray[7][7]=36
    triarray[8][0]=37
    triarray[8][1]=38
    triarray[8][2]=39
    triarray[8][3]=40
    triarray[8][4]=41
    triarray[8][5]=42
    triarray[8][6]=43
    triarray[8][7]=44
    triarray[8][8]=45
    triarray[9][0]=46
    triarray[9][1]=47
    triarray[9][2]=48
    triarray[9][3]=49
    triarray[9][4]=50
    triarray[9][5]=51
    triarray[9][6]=52
    triarray[9][7]=53
    triarray[9][8]=54
    triarray[9][9]=55
      

  2.   

    老大,JDK6.0 数组会默认初始化.
      

  3.   

    public class Test {
    public static void main(String[] args) {
    int[][] triarray = new int[10][];
    for (int i = 0; i < 10; i++) {
    triarray[i] = new int[i];
    }

    int k = 0;
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < triarray[i].length; j++) { 
    triarray[i][j] = ++k;
    System.out.println("triarray["+i+"]["+j+"] = "+triarray[i][j]);
    }
    }
    }}
      

  4.   

    二数组只初始了1维
    int[][] triarray=new int[10][];
    这个triarray[i].length当然就为NullPointerException咯.
      

  5.   

    不是i++ 就是在i被程序引用后再给自己加1与下面的写法一样i+=1
      

  6.   

    public class Test {
    public static void main(String[] args) {
    int[][] triarray = new int[10][];
    for (int i = 0; i < 10; i++) {
    triarray[i] = new int[i];
    }

    int k = 0;
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < triarray[i].length; j++) { 
    triarray[i][j] = ++k;
    System.out.print(triarray[i][j]+" ");
    }
    System.out.println();
    }
    }}
      

  7.   

    谢谢!!那下面的程序问题又出在哪里
    public class trigon{
       public static void main(String[] args){
          int[][] triarray=new int[10][];
          int i=0,j=0;
          for(int[] triarray2:triarray){
             triarray2=new int[++i];
          }      for(int[] triarray2:triarray){
             for(int tri:triarray2){
                triarray2[j++]=j+1;
                System.out.println(triarray2+""); 
             }
             System.out.println("");
          }
       }
    }
      

  8.   

    for(int[] triarray2:triarray){
    triarray2=new int[++i];
    }
    这样做其实并没有给数组赋值,triarray 中的每个元素还是 null。
      

  9.   

    一种正确的写法:
        public static void main(String[] args) {
            int[][] arr = new int[10][];
            int counter = 1;
            for (int i = 0; i < arr.length; i++) {
                arr[i] = new int[i + 1];            for (int j = 0; j < arr[i].length; j++) {
                    arr[i][j] = counter;
                    counter++;
                    System.out.print(arr[i][j] + " ");
                }            System.out.println();
            }
        }
      

  10.   

    public class c
    {
    public static void main(String [] args)
    {
    int num=1;

    for(int i=1;i<=4;i++)
    {
    for(int j=1;j<=i;j++)
    {
    System.out.print(num+" ");
    num++;
    }
    System.out.println();
    }
    }
    }
      

  11.   

    triarray2[j++]=j+1;
    问题出在这一行