我试图通过一个数组(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);
}
答案 0 :(得分:1)
在第二个arrayofArrays[columnIncrement].length
循环中将arrayofArrays[rowIncrement].length
更改为for
。
答案 1 :(得分:1)
你的第二个for循环需要有arrayofArrays[rowIncrement].length
。
答案 2 :(得分:1)
在你的内循环中,你应该有:columnIncrement < arrayofArrays[rowIncrement].length
答案 3 :(得分:1)
你的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],这就是造成问题的原因