使用二维数组创建和打印乘法表?

时间:2014-09-07 12:32:36

标签: java arrays for-loop foreach

我正在尝试使用二维数组创建一个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,现在让我觉得实际的数组是错误的。有什么想法吗?

1 个答案:

答案 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"