有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何制作一个循环来打印以下模式?

我想编写一个程序,通过使用循环打印出以下模式。现在我只能用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) 个答案

  1. # 1 楼答案

    试试这个:-

     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("*") ;     
    
    }
    
    }
    
  2. # 2 楼答案

    试试这个:

    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();
        }
    

    输出:

    **********
    *********
    ********
    *******
    ******
    *****
    
  3. # 3 楼答案

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

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

    demo

  4. # 4 楼答案

    解决方案:

    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);
    

    输出:

     * * * * * * * * * *
     * * * * * * * * *
     * * * * * * * *
     * * * * * * *
     * * * * * *
     * * * * *
    
  5. # 5 楼答案

    通过执行以下操作,可以在不使用两个循环的情况下执行此操作:

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

    输出:

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

    解释:这里发生的事情是使用指定的char数组创建String,这些数组都初始化为\0(空字符)。此时的字符串包含i个空字符。.replace用字符序列"* "替换字符序列"\0",结果是由重复序列组成的String