我正在尝试在一组数组(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);
}
最佳答案
你的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 循环中,您检查为 arrayOfArrays[columnIncrement] 而不是 arrayOfArrays[rowIncrement] 这就是导致问题的原因
关于java - 搜索二维数组越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628773/