java基础---循环打印图形

本文介绍如何使用Java基础在控制台输出实心和空心菱形。实心菱形通过代码实现,空心菱形在此基础上增加判断条件。最后提供一个通用的图像打印公式,只需修改数组参数即可应用于不同图案的打印。
摘要由CSDN通过智能技术生成

java基础打印图形

在控制台输出实心菱形和空心菱形,输出的结果:

        /*
         *    *
         *   ***
         *  *****
         * *******
         *  *****
         *   *** 
         *    *
         */
        /*
         *    *
         *   * *
         *  *   *
         * *     *
         *  *   *
         *   * * 
         *    *
         */

实心菱形代码部分:

for(int i=1;i<=4;i++) {//先控制打出倒三角
            for(int j= 1;j<=4-i;j++) {//内层控制每层的个数
                System.out.print(" ");
                /*
                 * 111
                 * 11
                 * 1
                 */
            }
            for(int k= 1;k<=2*i-1;k++) {
                    /*
                     * 此处正常输出的图形为:
                     *  *
                     *  ***
                     *  *****
                     *  *******
                     * 
                     */
                System.out.print("*");//此处正常打印*  1---3----5----7
            }
            System.out.println();
                /*
                 * 与之前的输出图形进行拼接,空格用1表示
                 * 111*
                 * 11***
                 * 1*****
                 * *******
                 * 则完成上半部分的菱形
                 */
        }
        //下半部分,原理和上半部分原理相同。
        for(int l=1;l<=2;l++) {
            for(int o =1;o<=l;o++) {
                System.out.print(" ");
            }
            for(int p=1;p<=2*(2-l+1)-1;p++) {
                System.out.print("*");
            }
            System.out.println();
        }

空心菱形则是在实心菱形的基础之上完成的
将输出号的同时做一次判断,看其是否满足每行的最后一个值,若满足输出,不满足输出空格:
代码部分:

for(int i=1;i<=4;i++) {//先控制打出倒三角
            for(int j= 1;j<=4-i;j++) {//内层控制每层的个数
                System.out.print(" ");
                /*
                 * 111
                 * 11
                 * 1
                 */
            }
            for(int k= 1;k<=2*i-1;k++) {
                if(k==1 || k==2*i-1) {//在此处做了判断,满足输出直角
                //三角形的两个边,也就是第一列是星号,还有最后一个是星号
                    System.out.print("*");//此处正常打印*  1---3----5
                }else {
                    System.out.print(" ");
                }

            }
            System.out.println();
        }//上半部分
        for(int l=1;l<=3;l++) {
            for(int o =1;o<=l;o++) {
                System.out.print(" ");
            }
            for(int p=1;p<=2*(3-l+1)-1;p++) {
                if(p==1 || p==2*(3-l+1)-1) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }

            }
            System.out.println();
        }

最后用数组写了一个图像通用公式:
各位在使用的时候,将数组的数字改为自己定义的图案即可使用:

class Test {
    public static void main(String[] args) {
        System.out.println(printHeart("*"));
    }
//这段代码输出的是 i love java,被心形包围。
    private static String printHeart(String input) {

        int[] array = { 0, 1, 0, 0, 0, 1, 0,
                        1, 0, 1, 0, 1, 0, 1,
                        1, 0, 0, 1, 0, 0, 1, 
                        1, 4, 5, 2, 3, 4, 1, 
                        0, 1, 0, 0, 0, 1, 0, 
                        0, 0, 1, 0, 1, 0, 0, 
                        0, 0, 0, 1, 0, 0, 0 };

        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < array.length; i++) {
            if (i % 7 == 0)
                sb.append("\n");
            if (array[i] == 0)
                sb.append("   ");
            else if (array[i] == 4)
                sb.append(" ");
            else if (array[i] == 5)
                sb.append(" I ");
            else if (array[i] == 2)
                sb.append("Lvoe ");
            else if (array[i] == 3)
                sb.append("Java");
            else
                sb.append("  " + input);
        }
        return sb.toString();
    }

}

以后再打印图案是直接套用对的方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值