for循环嵌套打印菱形
仅仅给予初学者思路,欢迎大佬评论留言。
import java.util.Scanner;
public class Diamond {
/**
* main方法,程序入口
*/
public static void main(String[] args) {
// 实例化Scanner
Scanner scan = new Scanner(System.in);
// 打印提示
System.out.println("请输入菱形打印行数(只能为奇数):");
// 获取用户想要的打印行数
int line = scan.nextInt();
// 判断打印行数是否为奇数
if (line % 2 == 1) {// 是奇数
// 创建菱形
// 声明整形变量halfLine表示打印行的一半数
int halfLine = line / 2;
// 声明middleLine表示中间行是第几行
int middleLine = (line + 1) / 2;
// 进行循环打印菱形
for (int i = 1; i <= line; i++) {
// 判断打印行数是否过半
if (i <= halfLine) {// 没有过半
// 循环打印空格符
for (int j = halfLine; j >= i; j--) {
System.out.print(" ");
}
// 循环打印正三角形
for (int j = 0; j < 2 * i - 1; j++) {
System.out.print("*");
}
}
// 判断打印行数是否达到中间行
if (i == middleLine) {// 达到中间行
// 打印中间最长一行
for (int j = 0; j < middleLine * 2 - 1; j++) {
System.out.print("*");
}
}
// 判断打印行数是否过半
if (i > middleLine) {// 打印行数已经过半
// 循环打印空白符
for (int j = 0; j < i - middleLine; j++) {
System.out.print(" ");
}
// 循环打印倒三角
for (int j = 2 * (line - i); j >= 0; j--) {
System.out.print("*");
}
}
System.out.println();
}
} else if (line % 2 != 1) {// 不是奇数
// 提示数值有误
System.out.println("行数只能为奇数!");
}
// 关闭流
scan.close();
}
}