如何每行打印n个数字

时间:2013-09-05 20:43:54

标签: java

你好,我有一个问题,我必须打印出可被17整除的数字 但我想打印5个数字,然后跳到下一行。 这是我的代码,不知道为什么它不起作用....

public class seventeen {
   public static void main(String[] args) {
      int num = 17;
      System.out.print("The Numbers Divisible By 17 are: ");
      int enter = 0;
      for (int x = 1; x <= 10000; x++) {
         if (x % num == 0) {
            System.out.print(x + " ");
         }
         enter++;
         if (enter == 5) {
            enter = 0;
            System.out.println();
         }
      }
   }
}

3 个答案:

答案 0 :(得分:6)

您应该只在达到数字验证时增加计数器。这意味着,在验证中移动enter++;

if (x % num == 0) {
    System.out.print(x + " ");
    enter++;
}

答案 1 :(得分:0)

将循环更改为 for(int x = 17 ; x <= 10000 ; x+=17) 应该解决它,并使你的代码快17倍。

然后你也可以删除模数检查。

答案 2 :(得分:0)

正如其他人发布的那样,只有当你真正印刷某些东西时,才应该增加enter;当你不打印东西时,在循环迭代中对它进行5次测试毫无意义。

另一点是确保你正确完成。如果最后一行有5个数字,那么在循环完成后enter将为0,并且您将在下一行。但是,如果最后一行很短,那么您需要确保在完成后执行println()。所以:

  int enter = 0;
  for (int x = 1; x <= 10000; x++) {
     if (x % num == 0) {
        System.out.print(x + " ");
        enter++;
        if (enter == 5) {
           enter = 0;
           System.out.println();
        }
     }
  }
  if (enter > 0)
     System.out.println();

(PS我实际上在其他答案中使用x+=17方法,但这个习惯用法可能出现在许多其他情况下,你实际上必须查看每个项目并只打印其中一些。)< / p>