java打印空心菱形

Python014

java打印空心菱形,第1张

Java利用for循环输出空心菱形的实例代码

编写程序,在控制台上输出空心菱形,对角距离为6.

代码如下:

public class Diamond {

    public static void main(String[] args) {

        printHollowRhombus(6)

    }

    public static void printHollowRhombus(int size) {

        if (size % 2 == 0) {

            size++// 计算菱形大小

        }

        for (int i = 0i <size / 2 + 1i++) {

            for (int j = size / 2 + 1j >i + 1j--) {

                System.out.print("  ")// 输出左上角位置的空白

            }

            for (int j = 0j <2 * i + 1j++) {

                if (j == 0 || j == 2 * i) {

                    System.out.print("* ")// 输出菱形上半部边缘

                } else {

                    System.out.print("  ")// 输出菱形上半部空心

                }

            }

            System.out.println("")     //换行

        }

        for (int i = size / 2 + 1i <sizei++) {

            for (int j = 0j <i - size / 2j++) {

                System.out.print("  ")// 输出菱形左下角空白

            }

            for (int j = 0j <2 * size - 1 - 2 * ij++) {

                if (j == 0 || j == 2 * (size - i - 1)) {

                    System.out.print("* ")// 输出菱形下半部边缘

                } else {

                    System.out.print("  ")// 输出菱形下半部空心

                }

            }

            System.out.println("")     //换行

        }

    }

}

效果如图:

打印菱形其实很简单,记得高中数学的公式么 Sn =a1+(n-1)*d

打印菱形一般分成两部分,第一部分是打印正三角(一个空白三角+星星正三角),然后是倒三角(空白三角+星星到三角)

每个三角形分别用两个for循环嵌套实现

例如:

for (int i = 1i <4i++) {

for (int j = 1j <= 1 + (i - 1) * 2j++) {

System.out.print("*")

}

System.out.println()

}

两个for循环,外面的for循环控制输出的星星或空白的行,里面的for循环控制输出列。

例如上面外层for值分别是 1 2 3 。

而我们相输出的列是 1 3 5 7.....

这个数列递增值d=2// Sn =a1+(n-1)*d

那么套用公式里面的循环就应写for(int j=1j<=1+(i-1)*2j++)

就能输出 1 3 5 7 个星星

倒三角也一样 套公式

倒三角的d值为-2 ,

用了这个公式,输出三角真的跟浮云一样简单 // Sn =a1+(n-1)*d