我正在尝试将数据插入到多维数组中,但是for循环中的'for循环'(内部'for循环')没有运行(当我运行代码内循环而不是runnig只有其他'for循环')你可以清楚看到结果我附上了这个问题。
一些代码:
for(int s=0;s<=y;s++){ //y mean number of arrays, user can input any number for y in here y>=2
int w=s+1;
System.out.println("number of data for array"+" "+w+':');
int night[][]=new int[s][x.nextInt()];
for(int counter=0;counter<night.length;counter++){
int m=counter+1;
System.out.println("insert the number"+m+":");
night[s][counter]=x.nextInt();
}
}
我还在学习Java
请告诉我为什么这不起作用
这是我运行该代码时的结果
how much Arrays:
4
number of data for array 1:
6
number of data for array 2:
7
insert the number1:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at practice.Multi_array_data_input.main(Multi_array_data_input.java:42)
答案 0 :(得分:0)
问题是您在数组中调用索引,该索引不存在,因为Java和JavaScript中的数组是从零开始的。使用int[] array = new int[3]
定义数组时,这意味着索引0, 1, 2
可用。索引3
不是数组的一部分。因此,要解决此问题,当您调用夜间数组时,必须将变量s最小化为1。
for(int s=0;s<=y;s++){ // y mean number of arrays, user can input any number for y in here y>=2
int w=s+1;
System.out.println("number of data for array "+w+':');
int night[][]=new int[s][x.nextInt()];
for(int counter=0;counter<night.length;counter++){
int m=counter+1;
System.out.println("insert the number "+m+":");
night[s - 1][counter]=x.nextInt();
}
}