java - 无法加载二维数组
问题描述
第一个 for 循环似乎只执行一次,而第二个(内部)for 循环工作正常。我尝试了所有我知道的循环类型,但总是得到相同的结果。我通常没有这些循环问题,所以我很好奇问题可能是什么。
public class xirtam {
public static void main(String[] args) {
try {
int max_columns = 10;
int max_characters_in_a_column = 30, sign;
int array[][] = new int[max_columns][max_characters_in_a_column];
for(int y=0;y<=max_columns;y++) {
> // This loop seems to be executed just 1 time
for (int x=0 ; x<=max_characters_in_a_column ; x++) {
> //This loop works fine for some reason
sign = (int) (Math.random() * ((256 - 0) + 1));
array[y][x] = sign;
System.out.println("column " + y + " character " + x + ":"+ array[y][x]); // prints out the "column" and "character" where the loop is currently working
//Thread.sleep(100);
}
}
} catch (Exception e) {
}
}
}
解决方案
你有一个Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 30 out of bounds for length 30
at array[y][x] = sign;
。因此。
在你的第二个 for 循环中使用x<max_characters_in_a_column
not <=
。这将解决您的问题。第一个循环也是如此。
数组的最大索引为array[9][29]
,因为您已将维度定义为 10 和 30。
推荐阅读
- angular - show navigation only in inner pages and not on login/registration pages
- flutter - 如何实现 Flutter 功能
- gmail-api - 请Gmail API html帖子示例
- java - 识别来自 git 存储库的参数更改
- android - Multiple checkbox state
- unit-testing - How to implement stub in Golang? And what difference between stub and mock?
- python - 如何获得shopify商店产品
- c# - sqlreader reading wrong column
- java - 通过Java中的构造函数调用没有实例的方法
- reactjs - 可重用的 React 钩子函数的意外(?)行为或者我做错了什么?