Java新手求助:使用for循环绘制指定字符图形
Java新手福利:用for循环打印指定图形的实现方案
嘿,作为Java新手不用发愁,这两个图形的打印其实用基础的for循环就能搞定,咱们一步步来拆解实现思路和代码:
图形1:* *** ***** *** *
这个图形是先递增后递减的奇数星号序列,上半部分从1个星增加到5个(每次+2),下半部分从3个星减少到1个(每次-2)。
实现代码
public class StarPattern1 { public static void main(String[] args) { // 打印上半部分:3行,星号数1、3、5 for (int i = 1; i <= 5; i += 2) { // 打印当前行的星号 for (int j = 1; j <= i; j++) { System.out.print("*"); } // 用空格分隔每行星号 System.out.print(" "); } // 打印下半部分:2行,星号数3、1 for (int i = 3; i >= 1; i -= 2) { for (int j = 1; j <= i; j++) { System.out.print("*"); } if (i != 1) { // 最后一行后面不需要多余空格 System.out.print(" "); } } } }
图形2:***** **** *** ** * * ** *** **** ******
这个图形是先递减到1个星,再递增到6个星(如果最后是笔误想写*****,把递增的终止条件改成5就行)。
实现代码
public class StarPattern2 { public static void main(String[] args) { // 打印递减部分:5行,星号数5、4、3、2、1 for (int i = 5; i >= 1; i--) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.print(" "); } // 打印递增部分:5行,星号数1、2、3、4、6(需改成5则替换i<=6为i<=5) for (int i = 1; i <= 6; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } if (i != 6) { // 最后一行后面不需要多余空格 System.out.print(" "); } } } }
小提示
- 如果想要图形每行单独换行(而非同一行用空格分隔),只需要把
System.out.print(" ");改成System.out.println();即可,按需调整~ - 嵌套循环的核心逻辑是:外层循环控制星号数量的变化规律,内层循环负责打印对应数量的星号。
内容的提问来源于stack exchange,提问作者Merilyn
相关产品推荐
相关产品推荐

