0

我正在尝试使用嵌套的 for 循环打印一些时间表,我让它工作但我有一个额外的空白行,我能够使用 if 语句将其删除但我想知道是否有更好的方法来做到这一点. 输出需要看起来像这样。

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

static void timesTables(){
    for (int i = 1; i <= 2 ; i++){
        for (int j = 1; j <= 5; j++){
            int output = i * j;
            System.out.print(output + " ");

        }
    }
}
4

3 回答 3

0

如果你想要那个输出,你可以添加和额外的println

static void timesTables(){
    for (int i = 1; i <= 5 ; i++){
       for (int j = 1; j <= 5; j++){
           int output = i * j;
           System.out.print(output + (j < 5)? " ": "");
       }
       System.out.println();
   }  
于 2013-09-11T18:55:13.240 回答
0

您可以为所需的输出添加带有 if 条件的额外 println。在外部 for 循环的第 5 次迭代中,不会打印额外的空白行。

static void timesTables(){
    for (int i = 1; i <= 5 ; i++){
        for (int j = 1; j <= 5; j++){
           int output = i * j;
           System.out.print(output + " ");
       }

       if(i<5)
       System.out.println();
   } 
于 2013-09-11T18:56:49.037 回答
0

添加到其他人一直在写的内容:

static void timesTables()
{
    int numRows = 5;
    int numCols = 5;
    for ( int i = 1; i <= numRows; i++ )
    {
         for ( int j = 1; j <= numCols; j++ )
         {
            int output = i * j;
            System.out.print( output + ( j < numCols )? " ": "" );
         }

         if( i < numRows )
         {
            System.out.println();
         }
     }
}  
于 2013-09-11T19:02:07.460 回答