如何制作循环以打印以下模式?

时间:2014-11-28 19:44:18

标签: java string loops for-loop while-loop

我想编写一个程序,通过使用循环打印出以下模式。现在我只能使用system.out.println来打印它。我不知道应该做哪个循环。

模式将是:

* * * * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *

我的代码:

  package pettern;

public class Pettern {

    public static void main(String[] args) {
        //initializing
        String tenStar = "* * * * * * * * * *";
        String NineStar = "* * * * * * * * *";
        String EightStar = "* * * * * * * *";
        String SevenStar = "* * * * * * *";
        String SixStar = "* * * * * *";
        String FiveStar = "* * * * *";

        //printing them out
        System.out.println(tenStar);
        System.out.println(NineStar);
        System.out.println(EightStar);
        System.out.println(SevenStar);
        System.out.println(SixStar);
        System.out.println(FiveStar);

    }

}

5 个答案:

答案 0 :(得分:0)

5 <= n <= 10范围内循环,每次打印"* " n次。在循环结束时,打印换行符。

for (int i = 10; i >= 5; i--) {
    for (int j = 0; j < i; j++) {
        System.out.print("* ");
    }
    System.out.println();
}

demo

答案 1 :(得分:0)

试试这个:

public static void main(String args[])
    {
        for (int i = 10; i >= 5; i--)
        {
            printStars(i);
        }

    }

    private static void printStars(int i)
    {
        for (int j = 1; j <= i; j++)
        {
            System.out.print("*");
        }
        System.out.println();
    }

输出:

**********
*********
********
*******
******
*****

答案 2 :(得分:0)

试试这个: -

 public class Pattern
{
public static void main(String[] args)
{
    int j=10 ;
    for(int i = 0 ; i < 6 ; i++)
    {
        printStar(j) ;
        System.out.println() ;
        j-- ;

    }




}

static void printStar(int n)
{
    for(int i = 0 ; i < n ; i++)

    System.out.print("*") ;     

}

}

答案 3 :(得分:0)

您可以通过执行此操作而不使用两个循环来执行此操作:

for (int i = 10; i >= 5; i--) {
    String stars = new String(new char[i]).replace("\0", "* ");
    System.out.println(stars);
}

输出:

* * * * * * * * * * 
* * * * * * * * * 
* * * * * * * * 
* * * * * * * 
* * * * * * 
* * * * *

说明:这里发生了什么String是使用指定的char数组创建的,\0全部初始化为i (空字符)。此时的String包含.replace个空字符。 "\0"正在用字符序列"* "替换字符序列String,结果是由重复序列组成的{{1}}。

答案 4 :(得分:0)

解决方案:

public static void printPattern(int rows) {
    IntStream.range(0, rows).map(r -> rows - r).forEach(x -> {
        IntStream.rangeClosed(1, rows + x - 2).forEach(y -> {
            System.out.print(" *");
        });
        System.out.println();
    });
}

用法:

printPattern(6);

输出:

 * * * * * * * * * *
 * * * * * * * * *
 * * * * * * * *
 * * * * * * *
 * * * * * *
 * * * * *