if语句有点不清楚(二维数组循环)

六行六列的杨辉三角有一条if语句有点不清楚

#include
int main()
{
int a[6][6],i,j;
for(i=0;i<6;i++){
    for(j=0;j<=i;j++){
        if(j==0||j==i)
            a[i][j]=1;
        if(j!=1&&j!=i)    //把这条语句改成else为什么就对,这个为什么就不对啊
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
}
for(i=0;i<6;i++){
    for(j=0;j<=i;j++)
printf("%d",a[i][j]);
printf("\n"); 
}
return 0;
}

两个if,这两个条件都成立就都执行,一个if一个else,只执行一个哇