1 public class exercise05{
2 public static void main(String[] args){
3 // 思路分析
4 // 化繁为简
5 // 1.打印一个矩形
6 // *****
7 // *****
8 // *****
9 // *****
10 // *****
11 // 2.打印半个金字塔
12 // * //第一层有1个*
13 // ** //第2层有2个*
14 // *** //第3层有3个*
15 // **** //第4层有4个*
16 // ***** //第5层有5个*
17 // 3.打印整个金字塔
18 // * //第一层有1个* 2*层数-1 2*1-1 有4=(总层数-1)个空格
19 // *** //第2层有3个* 2*层数-1 2*2-1 有3=(总层数-2)个空格
20 // ***** //第3层有5个* 2*层数-1 2*3-1 有2=(总层数-3)个空格
21 // ******* //第4层有7个* 2*层数-1 2*4-1 有1=(总层数-4)个空格
22 // ********* //第5层有9个* 2*层数-1 2*5-1 有0=(总层数-5)个空格
23 // 4.打印空心的金子塔
24 // * //第一层有1个* 当前行的第一个位置是*,最后一个位置也是*
25 // * * //第2层有2个* 当前行的第一个位置是*,最后一个位置也是*
26 // * * //第3层有2个* 当前行的第一个位置是*,最后一个位置也是*
27 // * * //第4层有2个* 当前行的第一个位置是*,最后一个位置也是*
28 // ********* //第5层有9个* 全部输出*
29
30
31 // 先死后活
32 // 5层数作为变量 int totalLevel = 5;
33
34
35
36
37
38 int totalLevel = 5;
39 for(int i;i<=totalLevel;i++){// i表示层数
40 //在输入*之前,还要输出 对应空格 = 总层数-当前层
41 for(int k =1;k<=totalLevel;k++){
42 System.out.println(" ");
43 }
44 //控制打印每层的*个数
45 for(int j=1;j<=2 * i - 1;j++){
46 if(j == 1 || j == 2 || i == 5=totalLevel){
47 System.out.println("*");
48 }else{//其他情况输出空格
49 System.out.println(" ");
50 }
51 }
52 //每打印完一层的*后,就换行 println本身会换行,ln就是换行
53 System.out.println(" ");
54 }
55
56 }
57
58 }