2016-12-05 4 views
-2

Я создаю рассадки в Java, который отображает стоимость каждого места в двухмерном массиве:двумерный массив в Java

public class MovieTheater { 
    public static void main(String[] args) { 
     final int rows = 10; 
     final int columns = 10; 
     int i; 
     int j; 
     int[][] seating = { 
      { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }, 
      { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }, 
      { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }, 
      { 10, 10, 20, 20, 20, 20, 20, 20, 10, 10 }, 
      { 10, 10, 20, 20, 20, 20, 20, 20, 10, 10 }, 
      { 10, 10, 20, 20, 20, 20, 20, 20, 10, 10 }, 
      { 10, 10, 20, 20, 20, 20, 20, 20, 10, 10 }, 
      { 20, 20, 30, 30, 40, 40, 30, 30, 20, 20 }, 
      { 20, 30, 30, 40, 50, 50, 40, 30, 30, 20 }, 
      { 30, 40, 50, 50, 50, 50, 50, 50, 40, 30 } 
     }; 

Однако, когда я пытаюсь напечатать массив:

 for (i = 0; i < rows; i++) { 
      System.out.print(rows[i]); 
      for (j = 0; j < columns; j++) { 
       System.out.print(columns[j]); 
      } 
     } 
    } 
} 

я получаю ошибку, которая гласит: array required, but int found

это проблема с моим форматом массива или проблема синтаксиса для моего пр int решение?

+2

Пожалуйста, более конкретно в вашем названии вопроса. Это поможет людям в Интернете найти более релевантные результаты и SO-пользователей. –

ответ

1

Вы делаете columns[j], но columns - это int, поэтому вы не можете получить к нему доступ, как массив. То же самое с rows[i]. Что вы должны сделать, так это во внутреннем контуре

System.out.println(seating[i][j]); 
0

Вы фактически не обращаетесь к своему объекту массива в цикле for.

Попробуйте это:

for(i=0;i<rows;i++) 
{ 
    for(j=0;j<columns;j++) 
    { 
     System.out.print(seating[i][j]); 
    } 
} 
0

Вы код не работает, потому что вы пытаетесь использовать целое число в массиве. Фактически строки и столбцы представляют собой два целых числа (значение 10); ваш массив равен seating.

Когда компилятор компилирует код он видит что-то вроде этого:

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

что невозможно. То, что вы действительно хотите:

for (i = 0; i < rows; i++) { 
    for(j = 0; j < columns; j++) { 
     System.out.print(seating[i][j]); 
    } 
} 
1

«колонна» и «строка» были определены как межды, не как массивы типа междунара. значение индекса строк и столбцов может использоваться для доступа к строкам и столбцам массива (сидения). и это может быть распечатан с помощью одного оператора печати:

for (i = 0; i < rows; i++) for (j = 0; j < columns; j++) System.out.print(seating[i][j]);