菱形如何java
菱形在 Java 中的实现方法
使用循环打印空心菱形
以下代码通过嵌套循环实现空心菱形的打印。外层循环控制行数,内层循环控制空格和星号的输出。
public class HollowDiamond {
public static void main(String[] args) {
int n = 5; // 菱形的行数(上半部分)
// 打印上半部分
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
// 打印下半部分
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
使用循环打印实心菱形
以下代码通过调整条件实现实心菱形的打印,逻辑与空心菱形类似,但所有内部位置均输出星号。
public class SolidDiamond {
public static void main(String[] args) {
int n = 5; // 菱形的行数(上半部分)
// 打印上半部分
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
// 打印下半部分
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
动态调整菱形大小
通过接收用户输入动态调整菱形的大小,增强代码的灵活性。
import java.util.Scanner;
public class DynamicDiamond {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入菱形的大小(上半部分行数): ");
int n = scanner.nextInt();
// 打印上半部分
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
// 打印下半部分
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
scanner.close();
}
}
使用字符数组构建菱形
通过字符数组预先构建菱形的每一行,再统一输出,适用于需要多次操作的场景。

public class ArrayDiamond {
public static void main(String[] args) {
int n = 5;
int size = 2 * n - 1;
char[][] diamond = new char[size][size];
// 初始化数组为空格
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
diamond[i][j] = ' ';
}
}
// 填充星号
for (int i = 0; i < n; i++) {
for (int j = n - 1 - i; j <= n - 1 + i; j++) {
diamond[i][j] = '*';
}
}
for (int i = n; i < size; i++) {
for (int j = i - n + 1; j < size - (i - n + 1); j++) {
diamond[i][j] = '*';
}
}
// 输出菱形
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
System.out.print(diamond[i][j]);
}
System.out.println();
}
}
}
以上方法涵盖了从简单到复杂的菱形实现方式,可根据需求选择适合的方案。






