【发布时间】:2017-11-07 12:50:16
【问题描述】:
所以我试图解决名人问题。你得到一个用 0 和 1 填充的二维数组。仅包含 1 的行 (=person) 是名人。 如果没有,则 int n 为 0,并且将是 2d 数组的列数,其中一行仅包含 1。
问题是,我找不到ArrayIndexOutOfBoundsException。它必须在循环中的任何位置。我使用了一个 5x5 二维数组并从 i = 0 开始。
该循环仅在i : 3 之前有效,然后抛出异常。
public int startSearch(int[][] matrix , int i) {
int j = 0;
int n = 0;
int esc = 0;
while(esc == 0) {
if(matrix[i][j] == 1) {
j++;
if( j >= (matrix.length +1) ) {
n = i+1;
esc = 1;
}
}
if(matrix[i][j] == 0) {
esc = 1;
}
}
i++;
if( i <= matrix.length) {
System.out.println("i : " +i);
System.out.println(n);
startSearch(matrix, i);
}
return n;
}
【问题讨论】:
-
也许
if( i <= matrix.length){应该是if( i < matrix.length){ -
在调试器中运行它。这就是他们的目的
-
已经试过了,还是一样的错误。不过还是谢谢你的回复!也调试了它,但不知道如何更改它。
-
可以添加错误的stacktrace
-
发布minimal reproducible example 以获得帮助。
标签: java arrays multidimensional-array