0

我正在练习 for 循环和本章末尾的练习之一,它要求创建一个乘法表,显示将 1 到 12 的整数相乘的结果。这就是我所做的,这会产生错误的结果。我确信我错过了一些简单但无法抓住的东西。

public class PP63 {

    public static void main(String[] args) {

        final int TOTAL = 12;


        for(int i = 1; i <= TOTAL; i++)
        {
            for(int j = 1; j<=TOTAL; j++)
            {
                System.out.println(i*j);
            }
        }

    }

}
4

4 回答 4

2

基本上,你想要一个表格,而不是一个列表

for(int i = 1; i <= TOTAL; i++)
{
    for(int j = 1; j<=TOTAL; j++)
    {
        System.out.print(i*j + "\t");
    }
    System.out.println();
}
于 2013-06-16T04:17:26.497 回答
1

这里的一个问题是这一行:

System.out.println(i*j);

请注意,这是调用println,它将值打印在自己的行上。如果要在同一行上打印多个值,可以System.out.print改用。您需要手动插入空格以确保所有内容都正确对齐,并且还必须插入您自己的换行符。

希望这可以帮助!

于 2013-06-16T04:16:21.203 回答
0

在您的主要方法中使用此代码。我希望你会喜欢

    final int TOTAL = 12;

    for(int i = 1; i <= TOTAL; i++)
    {
        for(int j = 1; j<=TOTAL; j++)
        {
           if(i*j<10)
              System.out.print(j+"*"+i+" = "+i*j +"     ");
           else if(10<=i*j & i*j<100)
              System.out.print(j+"*"+i+" = "+i*j +"    ");
                   else if(100<=i*j & i*j<1000)
              System.out.print(j+"*"+i+" = "+i*j +"   ");
        }
        System.out.println("");
    }
于 2013-06-16T04:44:31.067 回答
0

根据您的问题,我认为您将所有结果混合在一行中,因此您应该这样做:

public class PP63
    {
       public static void main (String[] args) {

          // print main table
          for (int i = 1; i <= 12; i++) {
             System.out.print(i + ":");
             for (int j = 1; j <= 12; j++) {
                System.out.print(i*j + " ");
             }
             System.out.println();
          }
       } // end of main
    }
于 2013-06-16T04:26:22.340 回答