你好,我有一个问题,我必须打印出可被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();
}
}
}
}
答案 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>