2017-02-17 8 views
2

Я получаю ArrayIndexOutOfBoundsException с этим кодом, может кто-нибудь сказать мне, что я делаю неправильно?Исключение с Java-матрицей

public class Test { 
    public static void main(String args[]) { 

     int[][] matrix = {{1,2,3,4}, 
        {1,2,3,4}}; 

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

Я понятия не имею! – aQaddoumi

ответ

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

Вы сравниваете с неправильной переменной индукции во внутреннем цикле. Это должно быть так:

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

Большое вам спасибо! Кажется, я потратил час на поиски решения. – aQaddoumi

+1

Иногда вам нужен только другой набор глаз. Бывает с нами. – cdhowie

0

В принципе, во внутреннем цикле должно быть «j» вместо «i».

0

Если это не домашнее задание, Java может сделать вашу жизнь проще.

int[][] matrix = {{1,2,3,4}, 
       {1,2,3,4}}; 
System.out.println(Arrays.deepToString(matrix));