Java 二维数组的越界搜索

Java 二维数组的越界搜索,java,arrays,search,multidimensional-array,Java,Arrays,Search,Multidimensional Array,我试图在数组(17行26列)中搜索一个整数,并打印该整数的索引。为了便于测试,我将搜索的整数设置为0,并且所有数组值都保留为默认值(0),因此在代码运行结束时,我应该可以看到打印的每个索引 行打印正确,但当columnIncrement>16时引发越界异常 有人知道我做错了什么吗?非常感谢您的帮助 private static void search(int[][] arrayofArrays, int num) { for(int rowIncrement = 0; rowIncre

我试图在数组(17行26列)中搜索一个整数,并打印该整数的索引。为了便于测试,我将搜索的整数设置为0,并且所有数组值都保留为默认值(0),因此在代码运行结束时,我应该可以看到打印的每个索引

行打印正确,但当columnIncrement>16时引发越界异常

有人知道我做错了什么吗?非常感谢您的帮助

private static void search(int[][] arrayofArrays, int num) {

    for(int rowIncrement = 0; rowIncrement < arrayofArrays.length; rowIncrement++) {
        for (int columnIncrement = 0; columnIncrement < arrayofArrays[columnIncrement].length; columnIncrement++) {
            if (arrayofArrays[rowIncrement][columnIncrement] == num) {
                System.out.println("The integer you are looking for is in " + rowIncrement + "-" + columnIncrement);
            }
        }
    }

    return;
}

public static void main(String[] args) {
    int[][] data = new int[17][26];
    int integer = 0;

    search(data, integer); 
}
private静态无效搜索(int[][]arrayofArrays,int num){
对于(int rowIncrement=0;rowIncrement
更改
arrayofArrays[columnIncrement]。将
长度更改为
arrayofArrays[rowIncrement]。将
长度更改为
arrayofArrays[rowIncrement].length
在你的第二个
for
循环中。

你的第二个for循环需要
阵列法拉利[rowIncrement]。length
你的第二个for循环需要
阵列法拉利[rowIncrement]。length
在你的内部循环中,你应该有:
columnIncrement

在内部循环中,应该有:
columnIncrement

for循环应该是

 for(int rowIncrement = 0; rowIncrement < arrayofArrays.length; rowIncrement++) {
    for (int columnIncrement = 0; columnIncrement < arrayofArrays[rowIncrement].length; columnIncrement++) {
        if (arrayofArrays[rowIncrement][columnIncrement] == num) {
            System.out.println("The integer you are looking for is in " + rowIncrement + "-" + columnIncrement);
        }
    }
}  
for(int-rowIncrement=0;rowIncrement

在第二个for循环中,您将检查为arrayOfArrays[columnIncrement]而不是arrayOfArrays[rowIncrement],这就是导致问题的原因

您的for循环应该是

 for(int rowIncrement = 0; rowIncrement < arrayofArrays.length; rowIncrement++) {
    for (int columnIncrement = 0; columnIncrement < arrayofArrays[rowIncrement].length; columnIncrement++) {
        if (arrayofArrays[rowIncrement][columnIncrement] == num) {
            System.out.println("The integer you are looking for is in " + rowIncrement + "-" + columnIncrement);
        }
    }
}  
for(int-rowIncrement=0;rowIncrement

在第二个for循环中,您将检查为arrayOfArrays[columnIncrement]而不是arrayOfArrays[rowIncrement],这就是导致问题的原因

是否也可以发布堆栈跟踪。是否也可以发布堆栈跟踪。