```java
import java.util.Scanner;
public class DiamondPattern {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入菱形的行数(奇数):");
int n = scanner.nextInt();
if (n <= 0 || n % 2 == 0) {
System.out.println("行数必须是正奇数。");
return;
}
printDiamond(n);
}
public static void printDiamond(int n) {
int maxLineNum = (n + 1) / 2;
// 输出上半部分
for (int i = 1; i <= maxLineNum; i++) {
// 输出空格
for (int j = 1; j <= maxLineNum - i; j++) {
System.out.print(" ");
}
// 输出星号
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
// 输出下半部分
for (int i = maxLineNum - 1; i >= 1; i--) {
// 输出空格
for (int j = 1; j <= maxLineNum - i; j++) {
System.out.print(" ");
}
// 输出星号
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
```
代码说明:
输入处理
使用`Scanner`类从控制台读取用户输入的菱形行数`n`。
检查输入的行数是否为正奇数,如果不是,则输出错误信息并退出程序。
输出菱形
计算菱形的最大行数`maxLineNum`,即`(n + 1) / 2`。
使用两个嵌套的`for`循环分别输出菱形的上半部分和下半部分。
在每一行中,先输出一定数量的空格,然后输出星号,最后换行。
上半部分的星号数量从1增加到`2 * maxLineNum - 1`,下半部分的星号数量从`2 * maxLineNum - 1`减少到1。
示例输出:
如果输入行数为5,输出结果如下:
```
*
*
*
*
*
*
*
*
*
```
你可以根据需要修改输入行数,程序将输出相应的数字菱形。