java打印空金字塔

86 阅读2分钟
import java.util.Scanner;

public class Stars {
    public static void main(String[] args) {


//        1.先打印一个5 * 5的 矩形
//        *****
//        *****
//        *****
//        *****
//        *****

//        for(int i = 1;i <= 5;i++){// i是层数
//            for(int j = 1; j <= 5;j++) {
                    //print是不换行打印
//                System.out.print("*");
//            }
            //println是换行打印
//            System.out.println("");
//        }

//        2.输出半个金字塔
//        *     第 1 层有 1 个
//        **     第 2 层有 2 个
//        ***     第 3 层有 3 个
//        ****      第 4 层有 4 个
//        *****       第 5 层有 5 个

//        for(int i = 1;i <= 5;i++){// i是层数
//
//            for(int j = 1; j <= i;j++) {
//                System.out.print("*");
//            }
//            System.out.println("");
//        }

//        3.打印整个金字塔
//            3.1
//        *             第 1 层 星星个数 1
//        ***             第 2 层 星星个数 3
//        *****             第 3 层 星星个数 5
//        *******             第 4 层 星星个数 7
//        *********            第 5 层 星星个数 9
//
//        for(int i = 1;i <= 5;i++){// i是层数
//
//            for(int j = 1; j <= 2 * i -1;j++) {//循环的次数就是打印星星的个数
//                System.out.print("*");
//            }
//            System.out.println("");
//        }
//
//        3.2 打印整个金字塔之前 要先打印星星前面的空格
//            *       第1层的空格数是4    5 - 1  = 总的层数 - 当前的层数
//           ***       第2层的空格数是3
//          *****       第3层的空格数是2
//         *******       第4层的空格数是1
//        *********       第5层的空格数是0
////
//

//        for(int i = 1;i <= 5;i++){// i是层数
//            for(int k = 1; k <= 5 -i;k++) {
//                System.out.print(" ");
//            }
//
//            for(int j = 1; j <= 2 * i -1;j++) {//循环的次数就是打印星星的个数
//                System.out.print("*");
//            }
//            System.out.println("");
//        }

//        4 空心的金字塔 f
//                *                 第1层 星星 1
//               * *                    第2层 星星 2 只包含左右两边的星星
//              *   *                     第2层 星星 2 只包含左右两边的星星
//             *     *                       第2层 星星 2 只包含左右两边的星星
//            *********                         第5层 星星 9  最后一行是全部的星星
//
//
        // 大功告成 !!!! ~~~~~~~
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的层数 ");
        int totalLever = scanner.nextInt();
        for(int i = 1;i <= totalLever;i++){// i是层数
            for(int k = 1; k <= totalLever -i;k++) {
                System.out.print(" ");
            }

            for(int j = 1; j <= 2 * i -1;j++) {//循环的次数就是打印星星的个数
                // 只打印第一个的星星和最后一个星星
                if (j == 1 || j == 2 * i -1 || i == totalLever) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println("");
        }
    }
}