方式一:实心菱形
int num=5;//定义菱形边长
//将菱形分为上下两部分
//上半部分找规律(第一行:1个*,4个空格;第二行:3个*,3个空格;第三行:5个*,2个空格...)
for (int i = 1; i <= num; i++) {
//控制空格
for (int k = 1; k <= (num - i); k++) {//空格数为(边长num-行数i)
System.out.print(" ");
}
//控制*
for (int j = 1; j <= i * 2 - 1; j++) {//*数为奇数(行数i*2-1)
System.out.print("*");
}
System.out.println();
}
//下半部分找规律(比上半部分少一行)
// (第一行:7个*,1个空格;第二行:5个*,2个空格;第三行:3个*,3个空格...)
for(int i=1;i<=num-1;i++){
for(int k=1;k<=i;k++){//空格数与每次行i相等
System.out.print(" ");
}
for(int j=1;j<=(num-i)*2-1;j++){//*数为奇数倒序((num-i)*2-1)
System.out.print("*");
}
System.out.println();
}
方式二:空心菱形
int num=5;//定义菱形边长
//将菱形分为上下两部分
//上半部分找规律(第一行:1个*,4个空格;第二行:3个*,3个空格;第三行:5个*,2个空格...)
for (int i = 1; i <= num; i++) {
//控制空格
for (int k = 1; k <= (num - i); k++) {//空格数为(边长num-行数i)
System.out.print(" ");
}
//控制*
for (int j = 1; j <= i* 2 - 1; j++) {//*数为奇数(行数i*2-1)
if(j==1||j==i* 2 - 1){//第一个和最后一个为*
System.out.print("*");
}else{//其他为空格
System.out.print(" ");
}
}
System.out.println();
}
//下半部分找规律(比上半部分少一行)
// (第一行:7个*,1个空格;第二行:5个*,2个空格;第三行:3个*,3个空格...)
for(int i=1;i<=num-1;i++){
for(int k=1;k<=i;k++){//空格数与每次行i相等
System.out.print(" ");
}
for(int j=1;j<=(num-i)*2-1;j++){//*数为奇数倒序((num-i)*2-1)
if(j==1||j==(num-i)*2-1){//第一个和最后一个为*
System.out.print("*");
}else{//其他为空格
System.out.print(" ");
}
}
System.out.println();
}