for循环内部循环

时间:2017-06-05 12:31:30

标签: java arrays

我正在尝试将数据插入到多维数组中,但是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)

1 个答案:

答案 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();
    }
}