我无法弄清楚如何更改数组中数组的元素。
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”?
和
为什么我的代码能够正确地打印引用每个部分的表,但是当我尝试打印单个元素时,它会给出null?
我猜这两个问题是相关的。它在for循环中工作,但不在循环之外。
答案 0 :(得分:2)
正在正确更新阵列。这是你的印刷错误。
它打印最后一行,最后一列。请注意您的循环中x
和y
未使用的方式:
System.out.print(board[row][column]);
您可以使用循环计数器打印为:
System.out.print(board[x][y]);
答案 1 :(得分:0)
我没能正确使用迭代器。