0

私はこの簡単なコードを持っています:

double[][] params = new double[][]{{197.0,258.0,427.0,426.0,507.0,524.0,386.0},
    {345.0,473.0,484.0,422.0,406.0,291.0,289.0}};       

for (int i = 0; i <= params.length; i++) {
    for (int j = 0; j <= params[i].length; j++) {
        System.out.println("Coordinates: " + params[i][j]); //line 29       
    }
}

そしてエラー:

> Caused by: java.lang.ArrayIndexOutOfBoundsException: 7    at
> com.eyecom.gen.generate_xml(gen.java:29)  

なぜこの例外が発生するのですか?

4

3 に答える 3

5

Java では、配列はゼロベースです。ここでは、配列の境界を超えています。使用する

for (int i = 0; i < params.length; i++) {
    for (int j = 0; j < params[i].length; j++) {
于 2013-03-29T18:28:52.750 に答える
3

試す

for (int i = 0; i < params.length; i++) {
    for (int j = 0; j < params[i].length; j++) {
        System.out.println("Coordinates: " + params[i][j]); // line 29
    }
}

配列内のインデックスは to から0length-1あるため、 index equal to を使用したくありませんlength

于 2013-03-29T18:29:00.867 に答える
2

for ループ構造を変更する

 for (int i = 0; i <= params.length; i++) {
    for (int j = 0; j <= params[i].length; j++) {
        System.out.println("Coordinates: " + params[i][j]); //line 29               
    }
}

for (int i = 0; i < params.length; i++) {
    for (int j = 0; j < params[i].length; j++) {
        System.out.println("Coordinates: " + params[i][j]); //line 29               
    }
}
于 2013-03-29T18:29:42.623 に答える