打印彼此格式化的两行

时间:2018-09-27 08:53:19

标签: java

我正在尝试格式化乘法表的输出,其中一行上只能有5个数字/整数。我正在for循环中使用printf方法尝试此操作,但到目前为止还无法正常工作。

代码:

System.out.println("Which multiplication table do you want to print?: ");
int number = input.nextInt();
int calculation;
System.out.println("Multiplication table: " + number + ":");
for (int i = 1; i <= 10; i++ ) {
    calculation = number * i;
    System.out.printf("%-5s ", calculation);
}

我的输出:

3    6    9    12   15   18   21   24   27   30  

我想要得到的输出:

 3    6    9    12   15
 18   21   24   27   30 

3 个答案:

答案 0 :(得分:2)

每5个号码打印一个换行器:

calculation = number * i;
System.out.printf("%-5s ", calculation);
if (i % 5 == 0) {
   System.out.println();
}    

答案 1 :(得分:1)

在打印5个元素后打印换行符:

if(i % 5 == 0)
   System.out.println();

答案 2 :(得分:1)

我认为您可以通过多种选择来实现这一目标:  1.第5次迭代后打印一个新的空行  2.添加"\n"标记行尾

1。

for (int i = 1; i <= 10; i++ ) {
        calculation = number * i;
        if (i % 5 == 0) {
         System.out.println();
        }    
        System.out.printf("%-5s ", calculation);
}

2。

for (int i = 1; i <= 10; i++ ) {
        calculation = number * i;
        if (i % 5 == 0) {
         System.out.printf("\n");
        }    
        System.out.printf("%-5s ", calculation);
}

希望这会有所帮助