我正在尝试格式化我所写的输出以显示素数列表(Eratosthenes)到每行的特定数字结果。他们需要放入Array
才能完成此任务吗?除了.split("");
之外,我没有遇到过实现除法的方法,它会为每个和Oracle站点的System.out.format();
参数索引呈现一行来指定长度。然而,这些需要知道角色。我用以下内容打印它,这当然创造了一条无限的线。
for (int count = 2; count <= limit; count++) {
if (!match[count]) {
System.out.print(count + ", ");
}
}
当System.out.print("\n");
运行10次时,是否可以简单地使用if(...>[10]
条件调用System.out.print()
?也许我忽略了一些对Java
来说相对较新的东西。提前感谢任何建议或意见。
答案 0 :(得分:2)
通过使用跟踪器变量,您可以跟踪已经显示的项目数,以便您知道何时插入新行。在这种情况下,我选择了10个项目。确切的限制可以灵活满足您的需求。
...
int num = 0;
//loop
for(int count = 2; count <= limit; count++)
{
if(!match[count])
{
if (num == 10) { System.out.print("\n"); num = 0; }//alternatively, System.out.println();
System.out.print(count + ",");
num++;
}
}
...
答案 1 :(得分:1)
你可以简单地创建一些int值,例如
int i = 1;
...每次Sysout运行时都会增加它的值。
这样的事情:
int i = 1;
for (int count = 2; count <= limit; count++) {
if (!match[count]) {
if (i%10 == 0)
System.out.print(count+ "\n");
else
System.out.print(count + ", ");
i++;
}
}
答案 2 :(得分:1)
试试这个:
int idx=1;
int itemsOnEachLine=10;
for(int count = 2; count <= limit; count++)
{
if(!match[count])
{
System.out.print(count+(idx%itemsOnEachLine==0?"\n":","));
idx++;
}
}
你会增加一个计数器(idx)以及每次写入,每10个增量(idx模数10 == 0),你将打印一个新的行字符,否则,一个“,”字符。