Java显示ArrayIndexOutOfBoundsException,但索引存在

时间:2016-05-07 20:46:22

标签: java

我正在编写一个应该显示Pascal三角形的小型Java程序。

当我启动程序时,我得到正确的输出1,然后它与异常ArrayIndexOutOfBoundsException: 1一起崩溃。显然,当假装将数据写入索引为// Assigning values的数组元素时,它会在[1][0]下的第二次初始化时被捕获。但是,后者在计划开始时初始化。

包中的类:

1)testclass - 主要的

2)factorial - 包括计算因子的factmet方法

主类的代码(因为或不相关而跳过了印刷部分):

class testclass {
public static void main(String args[]) {
    // Creating the array
    int doubledim[][] = new int[10][];
    int k;
    for (k = 0; k < 10; k++) {
        doubledim[k] = new int[k + 1];
    }

    // Assigning values
    int i, j;
    for (i = 1; i < 11; i++) {
        for (j = 0; j < j + i; j++) {
            if (factorial.factmet(j + 1) - factorial.factmet(i - j) == 0) doubledim[i - 1][j] = 1;
            else doubledim[i - 1][j] = factorial.factmet(i) / (factorial.factmet(j + 1) - factorial.factmet(i - j));
            System.out.print(doubledim[i - 1][j] + " ");
        }
    }
}
}

如何避免异常并使这些东西工作?感谢。

1 个答案:

答案 0 :(得分:3)

此行for (j = 0; j < j + i; j++) {的条件非常奇怪j < j + i。在任何情况下,它都将克服允许的j+1基础数组的长度。