锯齿状数组循环中线程 "main" java.lang.ArrayIndexOutOfBoundsException 中的错误异常
error Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException in jagged array loop
这里是 Java 的初学者。我正在制作一个锯齿状数组程序,其中行从 10 降到 1,它们需要从 0-9
预期输出:
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9
我有这个
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at Compilations.JaggedArrLab.main(JaggedArrLab.java:23)
我以前从未遇到过的错误,所以我真的不知道这意味着什么,也不知道如何解决它。
这是我的代码:
package Compilations;
public class JaggedArrLab {
public static void main(String[] args) {
int array[][] = new int [10][];
//initializing rows from 10-1
array [0] = new int [10];
array [1] = new int [9];
array [2] = new int [8];
array [3] = new int [7];
array [4] = new int [6];
array [5] = new int [5];
array [6] = new int [4];
array [7] = new int [3];
array [8] = new int [2];
array [9] = new int [1];
for (int i = 0; i<array.length; i++){
for (int j=0; j<i + 1; j++){
array[i][j] = i + j;
}
}
for (int i = 0; i<array.length;i++){
for (int j=0; j<i + 1; j++)
System.out.println(array[i][j] + "\t");
}
System.out.println();
}
}
当您尝试访问未声明为数组一部分的元素时,会抛出 ArrayIndexOutOfBoundException。这通常发生在循环边界条件错误时。
添加有效的代码,请参考它并检查您的循环条件。
package Compilations;
public class JaggedArrLab {
public static void main(String[] args) {
int array[][] = new int [10][];
//initializing rows from 10-1
array [0] = new int [10];
array [1] = new int [9];
array [2] = new int [8];
array [3] = new int [7];
array [4] = new int [6];
array [5] = new int [5];
array [6] = new int [4];
array [7] = new int [3];
array [8] = new int [2];
array [9] = new int [1];
for (int i = 0; i< array.length ; i++){
for (int j=0; j< array.length - i; j++){
array[i][j] = i + j;
}
}
for (int i = 0; i< array.length ;i++){
for (int j=0; j< array.length - i ; j++)
System.out.print(array[i][j] + "\t");
System.out.println();
}
System.out.println();
}
}
输出
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9
这里是 Java 的初学者。我正在制作一个锯齿状数组程序,其中行从 10 降到 1,它们需要从 0-9
预期输出:
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9
我有这个
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at Compilations.JaggedArrLab.main(JaggedArrLab.java:23)
我以前从未遇到过的错误,所以我真的不知道这意味着什么,也不知道如何解决它。
这是我的代码:
package Compilations;
public class JaggedArrLab {
public static void main(String[] args) {
int array[][] = new int [10][];
//initializing rows from 10-1
array [0] = new int [10];
array [1] = new int [9];
array [2] = new int [8];
array [3] = new int [7];
array [4] = new int [6];
array [5] = new int [5];
array [6] = new int [4];
array [7] = new int [3];
array [8] = new int [2];
array [9] = new int [1];
for (int i = 0; i<array.length; i++){
for (int j=0; j<i + 1; j++){
array[i][j] = i + j;
}
}
for (int i = 0; i<array.length;i++){
for (int j=0; j<i + 1; j++)
System.out.println(array[i][j] + "\t");
}
System.out.println();
}
}
当您尝试访问未声明为数组一部分的元素时,会抛出 ArrayIndexOutOfBoundException。这通常发生在循环边界条件错误时。
添加有效的代码,请参考它并检查您的循环条件。
package Compilations;
public class JaggedArrLab {
public static void main(String[] args) {
int array[][] = new int [10][];
//initializing rows from 10-1
array [0] = new int [10];
array [1] = new int [9];
array [2] = new int [8];
array [3] = new int [7];
array [4] = new int [6];
array [5] = new int [5];
array [6] = new int [4];
array [7] = new int [3];
array [8] = new int [2];
array [9] = new int [1];
for (int i = 0; i< array.length ; i++){
for (int j=0; j< array.length - i; j++){
array[i][j] = i + j;
}
}
for (int i = 0; i< array.length ;i++){
for (int j=0; j< array.length - i ; j++)
System.out.print(array[i][j] + "\t");
System.out.println();
}
System.out.println();
}
}
输出
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9