首先,创建for循环,定义空心菱形的层数
分析实心菱形结构,以及空心菱形结构:
发现,菱形每层左边空格数 = (总层数+1)/2 - i 的绝对值,
每层星号"*"数量 = 总层数 - 每层左边空格数 * 2
接下来,用If语句进行判断,每层第一个、最后一个以及最后一层输出星号"*",其余用空格" "代替,
当每层循环结束后,需换行:
输出结果为:
当创建随意单层菱形时,可调用Scanner类,创建一个Scanner对象,用以输出想要的层数:
完整代码如下:
import java.util.Scanner;
public class Switch{
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);//创建Scanner对象
System.out.println("请输入想创建菱形的层数:");
int layer = myScanner.nextInt();//定义菱形层数
for(int i = 1;i <= layer;i++){//菱形层数循环
for(int k = 1;k <= Math.abs((layer+1)/2-i);k++){//菱形各层空格数
System.out.print(" ");
}
for(int j = 1;j <= layer-Math.abs((layer+1)/2-i)*2;j++){//每层输出相应的星号*
if(j == 1 || j ==layer-Math.abs((layer+1)/2-i)*2 || i == layer){//需输出的星号
System.out.print("*");
}else{//*中间替换的空格
System.out.print(" ");
}
}
System.out.print("\n");//换行
}
}
}