java二维数组有空指针异常
public class LotteryArray {
public static void main(String[] args) {
final int NMAX = 10;
int[][] odds = new int[NMAX + 1][];
for (int n = 0; n < NMAX; n++)
odds[n] = new int[n + 1];
for (int n = 0; n < odds.length; n++)
for (int k = 0; k < odds[n].length; k++) {
int la = 1;
for (int i = 1; i <= k; i++)
la = la * (n - i + 1) / i;
odds[n][k] = la;
}
for (int[] row : odds) {
for (int odd : row)
System.out.printf("%4d", odd);
System.out.println();
}
}
}
int[][] odds = new int[NMAX + 1][]; 数组最大下标NMAX
for (int n = 0; n < NMAX; n++) 这里只循环到NMAX-1,所以最后一个是null
应该是+1 循环的最后一个没有初始化,所以报空指针
谁知道判断数组时为什么用null而不用数组的属性length=0呢?