Java语言打印菱形(附图解,简单易懂)

  • Post author:
  • Post category:java


怎么打印以下菱形图案?

为了便于观看将所有” (空格)”改为”$”得到如下图:

该图形是利用for循环的嵌套,将该图形分为上下两个部分得到:

  • 上半部分:

  • 下半部分


分析:


行号


“$”数


“*”数




4


1




3


3




2


5




1


7




0


9

由此可得:”$”数=行数-行号;”*”数=行号*2-1.

所以上半部分代码为:

        //外层for循环,i是行号
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5 - i; j++) {
                System.out.print("$");
            }
            for (int k = 1; k <= i * 2 - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }


行号


“$”数


“*”数




1


7




2


5




3


3




4


1

经分析下半部分只需将行号反过来即可

//下半部分
        for (int i = 4; i >= 1; i--) {
            for (int j = 1; j <= 5 - i; j++) {
                System.out.print("$");
            }
            for (int k = 1; k <= i * 2 - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }



最后将”$”改为” (空格)”即可

public class RhombusDemo1 {
    public static void main(String[] args) {
        //上半部分
        //外层for循环,i是行号
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5 - i; j++) {
                System.out.print("$");
            }
            for (int k = 1; k <= i * 2 - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
        //下半部分
        for (int i = 4; i >= 1; i--) {
            for (int j = 1; j <= 5 - i; j++) {
                System.out.print("$");
            }
            for (int k = 1; k <= i * 2 - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}



版权声明:本文为qq_51340887原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。