2016-07-23 3 views
0

Работает на Tic Tac Toe игры.Почему я не могу напечатать свой 2D-массив?

Я пытался найти правильный способ печати 2-го массива. Вот метод, над которым я сейчас работаю. Пытается распечатать элементы (или значения, что угодно) внутри доски. Что здесь не так?

// display board indicating positions for token (x, o) placement 

public void printBoard(int size) { 
    int col, row; 

    for (col = 0; col < size; col++) 
     System.out.print(" " + col); 
     for (row = 0; row < size; row++) { 
      System.out.print("\n" + row); 
      System.out.print(" " + board[col][row] + "|"); 
      System.out.print(" _ _ _ _ _ _"); 
     } 
} 
+0

Вы пропустили завершающую ''} в вашем фрагменте кода? –

ответ

1

Предполагая, что размер board.length, проблема заключается в логике условия в ваш внутренний цикл. board.length - это только количество строк в вашем 2d массиве. Поэтому, если количество строк равно количеству столбцов, ваш код не будет работать. Количество столбцов в массиве 2d равно числу элементов в определенном массиве или строке в массиве 2d, которые могут быть записаны как плата [i] .length (i - число от 0 до board.length - 1). Поэтому я хотел бы обновить ваш метод, чтобы принять два параметра, а не один,

public void printBoard(int rows, int columns) { 

    for (int i = 0; i < columns; i++){ 
     System.out.print(" " + i); 
     for (j = 0; j < rows; j++) { 
      System.out.print("\n" + j); 
      System.out.print(" " + board[j][i] + "|"); 
      System.out.print(" _ _ _ _ _ _"); 
     } 
    } 
} 

И тогда, когда вы вызываете метод, где бы вы это сделать,

printBoard(board.length, board[0].length); 

Примечание выше будет работать только тогда, когда 2d имеет одинаковые столбцы.

Редактировать: Убедитесь, что ваши вложенные петли корректно отформатированы с фигурными скобками {}, потому что в вашем внешнем контуре отсутствует пара фигурных скобок.

0

Вы забываете указать {} в петлю. когда петля имеет более чем одной строке необходимо заключить эти заявления с {}

public void printBoard(int size) { 
     int col, row; 

     for (col = 0; col < size; col++){//here starts { 
      System.out.print(" " + col); 
      for (row = 0; row < size; row++) { 
       System.out.print("\n" + row); 
       System.out.print(" " + board[col][row] + "|"); 
       System.out.print(" _ _ _ _ _ _"); 
      } 
     }// here ends } 
    } 
Смежные вопросы