2013-03-29 45 views
0

的,我有這個簡單的代碼:Java的二維數組進行擴展

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) 

爲什麼我得到這個例外?

回答

5

在Java中,數組是基於零的。這裏你超出了數組範圍。使用

for (int i = 0; i < params.length; i++) { 
    for (int j = 0; j < params[i].length; j++) { 
+0

我不好對不起......:S – david

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 
    } 
} 

指數從0length-1所以你不希望使用索引等於length

+0

能downvoter解釋他的行動呢?我真的很想知道我傷心的地方。 – Pshemo

2

更改爲循環結構

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    
    } 
}