JAVA输出杨辉三角前十行元素

public class yanghui {

public static void main(String[] args) {

    int [][] a=new int[10][];

    int i=0,j=0;

    for(i=0;i<10;i++)

    {

        a[i]=new int [i+1];      //分别为每一行分配不同的空间大小

        while(i<2)   

    {

        for(j=0;j
        {

            a[i][j]=1;  

            System.out.print(a[i][j]);

        }

        System.out.println();

    }

        while(i>=2)    

        {

            for(j=1;j
            {

                a[i][0]=1;   

                a[i][i]=1;    

                if(j
                {

                    a[i][j]=a[i-1][j]+a[i-1][j-1];     //中间元素的值等于同一列上一个元素加上同一列上一个元素的左边的元素之和

                    System.out.print(a[i][j]);

                }

            }

            System.out.println();

        }

    }

}

}

求解此代码的问题! 输入杨辉三角前十行,为什么显示数组越界?


public static void main(String[] args) {
        int[][] arr = new int[10][10];
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <= i; j++) {
                if(j == 0 || i == j) {
                    arr[i][j] = 1;
                }else {
                    arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }

你这写的什么东西啊?就算能运行也是死循环

public class yanghui {

    public static void main(String[] args) {

        int [][] a=new int[10][10];
        int i,j;
        for(i=0;i<10;i++)
        {
            a[i][0] = 1;    // 第1列值设置为1
            a[i][i] = 1;    // 对角线值设置为1
        }
        for (i=2; i<10; i++)  // 从第3行开始处理
        {
            for(j=1; j<=i-1; j++)
            {
                a[i][j] = a[i-1][j-1] + a[i-1][j];  // 设置值为上一行同列和前一列两数之和
            }
        }
        for (i=0; i<10; i++)
        {
            for (j=0; j<=i; j++)
            {
                System.out.print(a[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println();
    }
}