2017-02-11 71 views
-1

需要幫助運行此代碼,我需要找到錯誤,以便我可以修復它。謝謝! 錯誤接收是 異常在線程 「主」 java.lang.ArrayIndexOutOfBoundsException:6 在DebuggingExercise.main(DebuggingExercise.java:13)代碼沒有運行,我需要幫助來找到它的錯誤

import java.io.*; 


    public class DebuggingExercise { 

    public static void main(String[] args) 
    { 
     int[][] testArray = new int[5][6]; 

     for(int i=0;i<5;i++) 
     { 
      for(int j=1; j<=6; j++) 
       testArray[i][j] = (i+1)*j; 
     } 
    } 



} 

回答

3

在該for循環:

for(int j=1; j<=6; j++) 
      testArray[i][j] = (i+1)*j; 

「6」不在大小爲「6」(0 - 5)的數組的索引之外。

2

歡迎來到StackOverflow。我們來一步一步解釋一下:

int[][] testArray = new int[5][6]; 

表示一個有5行6列的二維數組。數組的索引從0開始。因此5行將被賦予如下的索引; 0,1,2,3,4

每行包含6列,這意味着,0,1,2,3,4,5

for(int i=0;i<5;i++) 

手段從0開始,去,直到4,因爲當我的價值變成5時,這將完成這個循環。沒關係,因爲您正在使用i來引用行索引。所以在這種情況下,行的0,1,2,3,4就可以。

for(int j=1; j<=6; j++) 

這意味着,從1開始,去,直到6.由於你與j參考陣列的列中,這將是象以下時的i值爲0

testArray [0] [1]

testArray [0] [2]

testArray [0] [3]

testArray [0] [4]

testArray [0] [5]

testArray [0] [6] //這是因爲每一行的例外只有6列和數組索引從0開始該是:0,1,2,3,4,5

因此您收到ArrayIndexOutOfBoundException