二维数组相加无法进行

img


输出杨辉三角如右图,但我的只能进行对角线和第一列的赋值,进入else里面之后,加不上

加强版,可以自己输入整数:

package com.czxy.methodtest;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//1、定义一个整数二维数组。 长度根据控制台输入来决定
//1.1、接收控制台输入
System.out.println("请输入一个整数:");
int num = sc.nextInt();
//1.2、定义二维数组
int[][] arr = new int[num][num];
//2、通过二维数组遍历,打印三角形
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j <=i; j++) {
//3、每次元素遍历中,进行判断:
//如果该元素 有左上元素和上方元素,该元素的值 = 左上元素+上方元素
//如果该元素 没有左上元素 或 没有上方元素, 该元素的值 = 1
//3.1、定义左上方元素 p1 定义上方元素 p2 默认值0
int p1=0,p2=0;
//3.2、进行判断,是否存在左上方索引
if(i-1>=0 && j-1>=0){
p1 = arr[i-1][j-1];
}
//3.3、进行判断,是否存在上方索引
if(i-1>=0){
p2 = arr[i-1][j];
}
//3.4、判断左上方元素和上方元素是否存在,若存在,进行相加求元素值
if(p1+p2!=0){
arr[i][j] = p1+p2;
}else{
//3.5、若不存在,边界元素,元素值 = 1
arr[i][j] = 1;
}
//4、判断完成,打印该元素即可
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}