使用for循环嵌套在控制台打印各种星形图案

/*
     *          *
                **
                ***
                ****
                *****
                ****
                ***
                **
                *

 * */

public static void printStars3(int n) {
        for(int i=1;i<=n;i++) {
            if(i                 for(int j=1;j<=i;j++) {
                    System.out.print("*");
                }
            }else {//接着打印第二部分
                for(int k=i;k<=n;k++) {
                    System.out.print("*");
                }
            }
            System.out.println();//每执行一次换一行
        }
    }

    /*
            *
            **
            ***
            ****
            *****

     * */

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

/*       *
        ***
       *****
      *******
     ********* 考虑成由空格和星号组成的两部分 */

public static void printStars1(int n) {
        for(int i=1;i<=n;i++) {
            for(int j=n-i;j>=1;j--) {
                System.out.print(" ");
            }
            for(int k=1;k<=2*i-1;k++) {
                System.out.print("*");
            }
            System.out.println();//换行位置决定了两层for循环每行输出的位置
        }
    }

/* 

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

*/

public static void printStars4(int n) {
        for(int i=1;i<=n;i++) {
            if(i                 for(int j=i;j                     System.out.print(" ");
                }
                for(int k=1;k<=2*i-1;k++) {//同行打印*
                    if(k==1||k==2*i-1) {
                        System.out.print("*");
                    }else {
                        System.out.print(" ");//同行*之间用空格填充
                    }
                }
            }else {//打印下半部分
                for(int e=1;e<=i-n/2-1;e++) {//先打印左侧空格处,第一行没空格,可控制第一次不满足循环条件
                    System.out.print(" ");
                }
                for(int m=i-n/2;m<=3*n/2-i+1;m++) {//打印右侧*,推导出规律,m<=n+n/2-i+1,中间用空格填充
                    if(m==i-n/2||m==3*n/2-i+1) {
                        System.out.print("*");
                    }
                    else {
                        System.out.print(" ");
                    }
                }
            }
            System.out.println();
        }
    }

你可能感兴趣的:(新手)