如何用java输出菱形
使用Java输出菱形
方法一:嵌套循环实现
通过嵌套循环控制行数和每行的空格与星号数量,可以输出一个菱形图案。
public class DiamondPattern {
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 size = scanner.nextInt();
// 上半部分
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= size - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
// 下半部分
for (int i = size - 1; i >= 1; i--) {
for (int j = 1; j <= size - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
scanner.close();
}
}
方法三:使用递归实现
递归方法可以更简洁地实现菱形输出,但逻辑稍复杂。
public class RecursiveDiamond {
public static void printDiamond(int n, int current) {
if (current > n) return;
// 打印空格
for (int i = 0; i < n - current; i++) {
System.out.print(" ");
}
// 打印星号
for (int i = 0; i < 2 * current - 1; i++) {
System.out.print("*");
}
System.out.println();
printDiamond(n, current + 1);
// 下半部分
if (current < n) {
for (int i = 0; i < n - current; i++) {
System.out.print(" ");
}
for (int i = 0; i < 2 * current - 1; i++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
int n = 5;
printDiamond(n, 1);
}
}
方法四:优化输出格式
通过调整输出格式,使菱形更加美观。
public class PrettyDiamond {
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();
}
}
}
以上方法提供了多种实现菱形输出的方式,可以根据需求选择合适的方法。







