java杨辉三角形,帮忙分析一下代码

public class yang {
public static void main(String[] args) {
int levelCount = 10;
int[][] yangHui = new int[levelCount][0];

for (int i = 0; i <=levelCount; i++) {

System.out.println(i);
for (int j = 0; j <= i; j++) {

if (i == 0) {
yangHui[i][j] = 1;
} else {
int value = 0;
if (j >= 1) {
value += yangHui[i - 1][j - 1];
}

if (j <i) {
value += yangHui[i - 1][j];
}
yangHui[i][j] = value;
}
}
}
for (int i = 0; i < levelCount; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(yangHui[i][j] + "\t");
}
System.out.println();
}
}
}
就是每一行都帮我分析一下,还有i和J代表什么
谢谢

public class yang {
public static void main(String[] args) {
int levelCount = 10; //定义层数
int[][] yangHui = new int[levelCount][levelCount]; //定义数组用来存数值
for (int i = 0; i <levelCount; i++) { //外循环 循环列
for (int j = 0; j <= i; j++) { //内循环 循环行
if (i == 0) { //如果第一列 
yangHui[i][j] = 1;//第一列只需要赋值一个1就行了
} else { //如果不是第一列
int value = 0; //定义value变量
if (j >= 1) { //如果行数大于等于1 就是表示第二行开始
value += yangHui[i - 1][j - 1]; //value的指 就加上前一行前一列的元素
}

if (j <i) { //如果不是最后一列
value += yangHui[i - 1][j]; //value就加上它前一行的同列元素的元素
}
yangHui[i][j] = value; //返回活得的value
}
}
}
/*
 * 这里说明一点,I为行号,J为列号 
 * 循环列,列号是不变的 行号加减 也就是J不动 I加减 
 * 循环行,行号是不变的 列号加减 也就是I不懂 J加减
 * 这个关系要搞明确了 
 * 你上面这种循环就是 先行号确定一个不变 然后逐个处理 第一列的第一行 第一列的第二行 等等 然后再换到第二列
 * 下面这个打印的注释掉的模块如果去掉注释 会让你更直观的看到杨辉三角 不去掉注释会让你理解循环
 */
for (int i = 0; i < levelCount; i++) {
for (int j = 0; j <= i; j++) {
// if(j==0){
// for(int k=0;k<(levelCount-i);k++){
// System.out.print("\t");
// }
// }
System.out.print(yangHui[i][j] + "\t\t");
}
System.out.println();
}
}
}

温馨提示:答案为网友推荐,仅供参考