我正在尝试使用二维数组创建一个12x12倍的表格图表。我尝试了下面的代码来实际创建数组:
int[][] table = new int[12][12];
for (int row=0; row<12; row++){
for (int col=0; col<12; col++){
table[row][col] = row+1 * col+1;
}
}
现在我无法弄清楚如何正确显示它,我试过这个:
for(int row=0; row<table.length; row++) {
for(int col=0; col<table[row].length; col++)
System.out.print(table[row][col] + "\t");
System.out.println();
}
这给出了一个12x12的表,但没有进行乘法,12x12点(网格中的第12列第12行)是23而不是144,现在让我觉得实际的数组是错误的。有什么想法吗?
答案 0 :(得分:3)
在数学陈述中使用括号。知道乘法优先于加法。
所以你的代码行:
table[row][col] = row+1 * col+1;
相当于
table[row][col] = row + (1 * col) + 1;
这不是你想要的。你想要:
table[row][col] = (row + 1) * (col + 1);
另外,请考虑使用String.format(...)
或System.out.printf(...)
格式化输出,因为它比使用标签\t
更强大,更灵活。此外,在游戏的舞台上,你应该将{...}
花括号内的所有if块和所有循环括起来,因为这样可以保存你的尾巴。
如,
for (int row = 0; row < table.length; row++) {
for (int col = 0; col < table[row].length; col++) {
System.out.printf("%6d", table[row][col]);
}
System.out.println();
}
或者如果您希望输出右对齐,请将"%6d"
更改为"%-6d"