Java显示ArrayIndexOutOfBoundsException,但索引存在
我正在编写一个小Java程序,它应该显示Pascal的三角形 当我启动程序时,我得到正确的输出Java显示ArrayIndexOutOfBoundsException,但索引存在,java,Java,我正在编写一个小Java程序,它应该显示Pascal的三角形 当我启动程序时,我得到正确的输出1,然后它崩溃,出现异常ArrayIndexOutOfBoundsException:1。显然,当假装用索引[1][0]将数据写入数组元素时,//赋值下的外循环第二次初始化时,它被捕获。然而,后者是在程序开始时初始化的 包中的类: 1) testclass-主类 2) factorial-包括计算因子的factmet方法 主类的代码(由于不相关或不相关而跳过打印部分): class测试类{ 公共静态vo
1
,然后它崩溃,出现异常ArrayIndexOutOfBoundsException:1
。显然,当假装用索引[1][0]
将数据写入数组元素时,//赋值
下的外循环第二次初始化时,它被捕获。然而,后者是在程序开始时初始化的
包中的类:
1) testclass
-主类
2) factorial
-包括计算因子的factmet
方法
主类的代码(由于不相关或不相关而跳过打印部分):
class测试类{
公共静态void main(字符串参数[]){
//创建数组
int-doubledim[][]=新的int[10][];
int k;
对于(k=0;k<10;k++){
doubledim[k]=新整数[k+1];
}
//赋值
int i,j;
对于(i=1;i<11;i++){
对于(j=0;j
如何避免异常并使这些东西工作?谢谢。这一行
for(j=0;j
有一个非常奇怪的条件j
。在任何情况下,它都会克服底层数组允许的j+1
长度。在哪一行发生异常?它在堆栈跟踪中或直接在调试器中。对不起,请使用行,否则doubledim[i-1][j]
。这里是#14。我在使用IntelliJ IDEA,所以我猜在调试器中。j
对我来说毫无意义-它等于0
(如果没有溢出)如何可以:for(j=0;jclass 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] + " ");
}
}
}
}