2014-10-16 51 views
0
public class ArrayLoops { 

    public static int [][] array; //initialize array 

    public static void main (String [] args){ 

     array = new int[4][4]; //set the amount of data values in array 
     //starts from 0 
     array[0][0] = 9; 
     array[1][3]= 2; 
     array[2][1]= 3; 
     array[3][3] = 5; 
     array [3][0] = 1; 
     // ends at 4 because (0,1,2,3) = 4; 

     for (int i= 0; i<array.length; i++) //.length gets # of datas in array 
     { 
      System.out.println(); 

      for (int j =0; j< array[i].length; i++){  
      System.out.println (array[i][j]); 
      } 
     } 
    } 
} 

控制檯MSG是異常在線程 「主」 java.lang.ArrayIndexOutOfBoundsException:4 在ArrayLoops。 main(ArrayLoops.java:21)打印輸出在Java 2D陣列...這創建錯誤

+0

用j ++第二個循環替換i ++ – vlatkozelka 2014-10-16 23:38:49

+2

標記爲刪除 - 這是一個簡單的輸入錯誤,不太可能對未來的讀者有所幫助。 – ArtOfWarfare 2014-10-16 23:40:03

回答

3

您意外遞增ijfor循環。當它已經是3jfor循環增加它時,這可能導致i增加超出界限。更改

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

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

哈哈謝謝你哈哈 – 2014-10-16 23:41:57

1

在內部進行循環,你會增加我的,而不是Ĵ

1

我想我看到的問題是什麼:

在第二個for循環您當你增加i時,會增加j。

for (int i= 0; i<array.length; i++) //.length gets # of datas in array 
    { 
     System.out.println(); 

     for (int j =0; j< array[i].length; j++){ 
      // change such that j is incremented for each iteration 
      System.out.println (array[i][j]); 
     } 
    } 

這應該工作。