我创建了一个程序,要求用户指定网格的宽度,高度和字符。但是,当它打印网格时,它全部在一行而不是2D。
public static void main(String[] args) {
System.out.println("A B C - create a new grid with Width A, Height B and Character C to fill grid);
Scanner scan = new Scanner(System.in);
int Width = scan.nextInt();
int Height = scan.nextInt();
char C = scan.next().charAt(0);
char [][] grid = new char [Width][Height];
for (int row = 0; row < Width-1 ; row++) {
for (int col = 0; col < Height-1; col++) {
grid[row][col] = C;
System.out.print(grid[row][col]);
}
}
}
答案 0 :(得分:2)
您需要在每行后面打印一个新行'\n'
字符。否则控制台将不知道行何时结束。
此外,您没有正确命名变量。外部循环应遍历您的行并从0
转到height - 1
,内部(列)应从0
转到width - 1
。如果这令人困惑,请考虑另一种索引像素的常用方法:x
和y
。虽然x
表示您所在的列,但为什么y
表示您在哪一行。
int width = scan.nextInt();
int height = scan.nextInt();
char c = scan.next().charAt(0);
char [][] grid = new char [width][height];
for (int row = 0; row < height - 1; col++) {
for (int col = 0; col < width - 1; row++) {
grid[col][row] = c;
System.out.print(grid[col][row]);
}
System.out.print("\n");
}
另外请注意,我冒昧地用较低的字母(height
和width
)命名你的变量,使它们与java naming conventions一致。