*
***
*****
*******
*********
*******
*****
***
*
我们将打印这样一个菱形,首先我们先把菱形分为一下几个部分组成:
上半部分:一个倒直角三角形(这里我把空格换成了 ^ ,更方便观察) + 一个等腰三角形
^^^^*
^^^***
^^*****
^*******
*********
下半部分:一个正直角三角形 + 一个倒等腰三角形(少一行)
^*******
^^*****
^^^***
^^^^*
接下里我们开始一步一步打印这个菱形:
--------------------------------------------------------------------
---第一步,打印一个正直角三角行( * )
---第二步,打印一个倒直角三角形( ^ )
---第三步,合并两个三角形(并把 ^ 换成 空格)
---第四步,把合并之后的三角形倒转(注意少一行)
---第五步,合并一正一反两个三角形
---------------------------------------------------------------------
第一步,打印一个正直角三角行( * )
//*
//***
//*****
//*******
//*********
for(int i = 1; i <= 5; i++){ // 控制行
for(int j = 1; j<= i*2 - 1; j++){ // 控制列
System.out.print("*");
}
System.out.println();
}
第二步,打印一个倒直角三角形( ^ )
//^^^^
//^^^
//^^
//^
for(int i = 1; i <= 4; i++){
for(int j = 4; j >= i; j--){
System.out.print("^");
}
System.out.println();
}
第三步,合并两个三角形(并把 ^ 换成 空格)
// *
// ***
// *****
// *******
//*********
for(int i = 1; i <= 5; i++){
for(int j = 4; j >= i; j--){
System.out.print(" ");
}
for(int k = 1; k <= i*2 - 1; k++){
System.out.print("*");
}
System.out.println();
}
第四步,把合并之后的三角形倒转(注意少一行)
// *******
// *****
// ***
// *
for(int i = 4; i >= 1; i--){
for(int j = 4; j >= i; j--){
System.out.print(" ");
}
for(int k = 1; k <= i*2 - 1; k++){
System.out.print("*");
}
System.out.println();
}
第五步,合并一正一反两个三角形
// *
// ***
// *****
// *******
// *********
// *******
// *****
// ***
// *
for(int i = 1; i <= 5; i++){
for(int j = 4; j >= i; j--){
System.out.print(" ");
}
for(int k = 1; k <= i*2 - 1; k++){
System.out.print("*");
}
System.out.println();
}
for(int i = 4; i >= 1; i--){
for(int j = 4; j >= i; j--){
System.out.print(" ");
}
for(int k = 1; k <= i*2 - 1; k++){
System.out.print("*");
}
System.out.println();
}