首页 > 解决方案 > 如何以盒子图案或任何类型的图案打印?

问题描述

我的意思是当我打印时,例如,埃拉托色尼筛,它只是用println(). 使用print(),它只是水平打印另一条长线。我想要它,以便有某种你无法跨越的线。

我附上了一个片段,为了更清晰的目标,我画了一个红色框,我希望数字在哪里停止,从哪里开始。

一个带红框的剪辑

标签: javaloopsfor-loopprinting

解决方案


有很多方法可以实现这一目标。这是一种方法。假设您正在打印从 1 到的自然数,n并且您只需要10 个自然数在一行中,那么您可以这样做:

for (int i = 1; i <= n; i++) {
    System.out.print(i + " ");

    //Add new line if there are 10 elements in a row
    if (i % 10 == 0) System.out.println();
}

如果您正在使用Sieve of Eratosthenes则要打印的数字不遵循常规顺序。在这种情况下,您可以计算number of numbers打印并相应地添加新行。

假设您有一个boolean数组numbers,其中如果数组的索引表示素数,则在该索引true处存储或false存储。在这种情况下,您可以使用这个:

int count = 0;
for (int i = 1; i <= n; i++) {
    if (numbers[i]) {
        System.out.print(i + " ");
        count++;
    }

    if (count == 10) {
        System.out.println();
        count = 0;
    }
}

我应该补充一点,如果您仍想在输出中添加更多对称性以便有适当的间距并且元素出现在另一个下方,您可以替换 System.out.print (i + " ")System.out.print (i + "\t").

输出会看起来更漂亮,并且更具可读性。

我希望我对你有所帮助。


推荐阅读