Java嵌套循环实现斜菱形图案:空格逻辑问题导致效果不符
解决Java嵌套循环实现斜菱形图案的空格控制问题
你的代码核心问题在于每行的空格数固定为n-1,没有随当前行号动态调整,导致所有星号行完全左对齐,无法呈现斜向的菱形效果。
修正思路
斜菱形需要分为上下两部分实现:
- 上半部分(共n行):每行空格数随行号递增而递减(
n - i),星号数随行号递增而递增(i),形成从左上到右下的斜向延伸。 - 下半部分(共n-1行):每行空格数随行号递减而递增(
n - i),星号数随行号递减而递减(i),补全菱形的下半段。
修正后的代码
public class RhombusPattern { public static void rhombus(int n) { // 上半部分:从1到n行 for (int i = 1; i <= n; i++) { // 打印空格:数量为n - i for (int j = 1; j <= n - i; j++) { System.out.print(" "); } // 打印星号:数量为i for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } // 下半部分:从n-1到1行 for (int i = n - 1; i >= 1; i--) { // 打印空格:数量为n - i for (int j = 1; j <= n - i; j++) { System.out.print(" "); } // 打印星号:数量为i for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } } public static void main(String args[]) { rhombus(5); } }
输出效果(n=5时)
* ** *** **** ***** **** *** ** *
内容的提问来源于stack exchange,提问作者Mamik Saha
相关产品推荐
相关产品推荐

