首页 > 解决方案 > 如何使用while循环打印“*”n次?

问题描述

public class Hello {

    public static void pattern() {
        int s1 = 3;

        while(s1 >= 1) {
            System.out.println("*");
            s1--;
        }

    }

    public static void main(String [] args){
        pattern();
    }

}

实际输出:

*
*
*

预期输出:

* * *
 * *
  *

我想使用 while 循环打印“ * ”(如上面预期的输出)。我做了一个while循环来控制列数。我无法创建一个while循环来控制行在同一行输出“*”3次(下一行2次,依此类推)。

标签: javawhile-loop

解决方案


只需一个循环和一些循环,String.repeat()您就可以绘制您的图案

  • 重复前导空格,starting 和 0,每轮再重复一个
  • 根据 ong 重复该模式s1,3 次,然后 2 次,然后 1 次
public static void pattern() {
    int s1 = 3;
    int s2 = 0; // space counter
    while(s1 >= 1) {
        System.out.print(" ".repeat(s2));
        System.out.println("* ".repeat(s1).trim()); // trim to remove last space
        s1--;
        s2++;
    }
}

推荐阅读