2016-11-27 77 views
0

我無法弄清楚如何更改數組中的數組元素。在Java中更改數組中的數組元素

public class testOut{ 

public static void main(String[] args) { 

    String board[][] = generate(7,7); 

    print(board); // prints a 7x7 table with 49 "O"s 

    board[2][2] = "X"; // This is the line I'm concerned about 
    System.out.println(board[2][2]); // prints out "X" 
    System.out.println(board[1][1]); // prints out "Null" 

    print(board); // still prints a 7x7 table with 49 "O"s 

} 

static String[][] generate(int row, int column){ 


    String[][] board = new String[row+1][column+1]; 
    for (int x=0; x < row; x++){ 

     for (int y=0; y < column; y++){ 

      board[row][column] = "#"; 
     } 
    } 
     return board; 

} 

static void print(String[][] board){ 

    int row = board.length - 1; 
    int column = board[0].length - 1; 

    for (int x=0; x < row; x++){ 

     for (int y=0; y < column; y++){ 
      System.out.print(board[row][column]); 
     } 
     System.out.println(""); 
    } 

} 
} 

輸出:

OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
X 
null 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 
OOOOOOO 

我想弄清楚 -

爲什麼我能上打印的「X」,但我的打印功能不打印的「X」桌子?

爲什麼是我的代碼能夠正確地打印出表格引用每件,但是當我嘗試打印一個單獨的元素,它給空?

我猜這兩個問題是相關的。它在for循環中工作,但不在循環之外。

+0

我很困惑你的生成方法。你真的只是想多次分配相同的參考?你只是想讓它登上[x] [y] =「#」;代替? –

回答

2

陣列正在被正確更新。這是你的打印錯誤。

它打印最後一行,最後一列。注意如何在循環xy未使用:

System.out.print(board[row][column]); 

可以使用循環計數器打印爲:

System.out.print(board[x][y]); 
+0

噢,我明白了。謝謝。 –

+0

@DanWhite,如果這個答案對你有幫助,不要猶豫,接受它(V下面的選票)。這將回答這個問題。 – AxelH

0

我無法正常使用迭代器。