我正在编写一个应该显示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] + " ");
}
}
}
}
如何避免异常并使这些东西工作?感谢。
答案 0 :(得分:3)
此行for (j = 0; j < j + i; j++) {
的条件非常奇怪j < j + i
。在任何情况下,它都将克服允许的j+1
基础数组的长度。