分析:我们可以这个菱形分成两部分,上面5行和下面4行。
/**
* | * |
* | *** |
* | ***** |
* | ******* |
* |*********|
*/
//外部控制行 上部分有5行 所以 i=5
for(int i=1;i<=5;i++){
//内部控制列 第一行中有4个空格 第二行中有3个空格 依次类推 可知 空格=总行数-1
for(int k=1;k<=5-i;k++){
System.out.print(" ");
}
//第一行中有1颗星 第二行中有3颗星 第三行中有5颗星 依次类推 可知 星数=2*行数-1
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
//每输出一行 换行
System.out.println();
}
/**
* | ******* |
* | ***** |
* | *** |
* | * |
*/
//下半部分 共有四行 所以 x=4
for(int x=1;x<=4;x++){
//第一行有空格1个 第二行空格2个 第三行空格三个 所以 空格=行数
for(int b=1;b<=x;b++){
System.out.print(" ");
}
//第一行有7个星星 第二行有5个星星 第三行有3个星星 所以第一次输出7个星星,每次减少2个
for(int a=7;a>=2*x-1;a--){
System.out.print("*");
}
System.out.println();
}