Что не так с этим 2D-массивом? - PullRequest
1 голос
/ 15 ноября 2011

Я использую 2D Array в Java, и это впервые. Мне интересно, что не так с массивом, поскольку я получаю много ошибок ...? (вероятно, действительно глупая ошибка)

код

    int board[21][21] = {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, 
  {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1},
  {1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1},
  {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
  {1,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1},
  {1,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1},
  {1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1},
  {1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1},
  {0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0},
  {1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1},
  {0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0},
  {1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1},
  {1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1},
  {1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1},
  {1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1},
  {1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1},
  {1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1},
  {1,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1},
  {1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1},
  {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}};

Список ошибок Вот ссылка вместо того, чтобы публиковать ее здесь, так как в ней много ошибок

Ответы [ 6 ]

3 голосов
/ 15 ноября 2011

Нельзя указывать размер массивов в объявлении.Если вы удалите целые числа размера, он скомпилируется.Однако вы всегда должны ставить скобки на тип вашей переменной, а не на саму переменную, когда вы объявляете ее так:

int[][] board;

вместо:

int board[][];

Если вы хотитесоздайте пустой массив с определенным размером, тогда вы сделаете это с помощью оператора new:

int[][] board = new int[21][21];

Однако вы никогда не укажете размер, если вы определяете свой массив при инициализации массива, т.е.

int[][] board = {{...}, ...};
3 голосов
/ 15 ноября 2011

Удалить 21. Вы должны сказать

int board[][] = ....

Вы должны определить размеры массива при их создании.Например, вы можете сказать new int[5] и создать массив из 5 элементов длиной int.Но когда вы присваиваете этот массив переменной, вы говорите: int[] arr = new int[5].Здесь int[] - это тип (массив int).Это похоже на int * в C. Вам не нужно указывать, насколько большим будет массив, когда вы определяете его тип.Вам просто нужно сказать, какой у него тип элемента и сколько у него размеров.

2 голосов
/ 15 ноября 2011

Во-первых, вы получаете ошибку компиляции для указания размера вашего 2D-массива в объявлении

int board[21][21]

обычно вы хотите сделать это так:

int board[][] = {{1,2}{1,3}}

Это двумерный массив с 2 столбцами и 2 строками

 1 2
 1 3

Итак, если вы хотите создать двумерный массив с 21 строкой и 21 столбцом, вы должны сделать это:

int board [] [] = {{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {], {}, {}, {}, {}, {}}

и заполните все, что вам нужно, между внутренними скобками.

1 голос
/ 15 ноября 2011

удалить размеры из декларации:

int board[][]
1 голос
/ 15 ноября 2011

Ваша декларация неверна.

 int board[][] = new int[][] {{...
1 голос
/ 15 ноября 2011

Измените первую строку на board[][] ={{ all your numbers}} и все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...