zoukankan      html  css  js  c++  java
  • for循环输出漏斗的形状【java】

    使用for循环语句输出以下“漏斗”效果:

    +------+
    |..../|
    | ../ |
    |  /  |
    |  /  |
    | /.. |
    |/....|
    +------+

     代码:(解决思路详见代码头部多行注释)

      本例代码中使用了常量 HEIGHT,是指漏斗内部高度值的一半作为常量值。

    /*
     * +------+     HEIGHT:3
     * |..../|     第一行:空格数:0  点数:4  空格数:0
     * | ../ |     第二行:空格数:1  点数:2  空格数:1
     * |  /  |     第三行:空格数:2  点数:0  空格数:2
     * |  /  |
     * | /.. |
     * |/....|
     * +------+
     * 
     * +--------+    HEIGHT:4
     * |....../|    第一行:空格数:0  点数:6  空格数:0
     * | ..../ |    第二行:空格数:1  点数:4  空格数:1
     * |  ../  |    第三行:空格数:2  点数:2  空格数:2
     * |   /   |    第四行:空格数:3  点数:0  空格数:3
     * |   /   |
     * |  /..  |
     * | /.... |
     * |/......|
     * +--------+
     * 
     * 分析:
     * 1、将图形分成三个部分:
     *         - 最上层和最下层的图形;
     *         - 漏斗上部分
     *         - 漏斗下部分
     * 2、取漏斗的上部分为一个定值HEIGHT
     *         - 最上层和最下层的图形:
     *             "-"数量为:2*HEIGHT
     *         - 漏斗上部分
     *            第n行:空格数:line-1        点数:2*(HEIGHT-line)        空格数:line-1
     *        - 漏斗下部分
     *            第n行:空格数:HEIGHT-line    点数:2*(line-1)            空格数:HEIGHT-line 
     *             
     * 
     */
    
    public class Test {
        public static final int HEIGHT = 3;
        
        public static void main(String[] args) {
            drawLine();
            drawTop();
            drawBottom();
            drawLine();
        }
        
        public static void drawTop() {
            
            for(int line=1;line<=HEIGHT;line++) {
                System.out.print("|");
                
                    //输出右边的空格“ ”
                    for(int i=1;i<=(line-1);i++) {
                        System.out.print(" ");
                    }
                    
                    System.out.print("\");
                    
                    //输出点“.”
                    for(int i=1;i<=2*(HEIGHT-line);i++) {
                        System.out.print(".");
                    }
                    
                    System.out.print("/");
                    
                    //输出右边的空格“ ”
                    for(int i=1;i<=line-1;i++) {
                        System.out.print(" ");
                    }
    
                    System.out.println("|");
            }
            
        } 
        
    public static void drawBottom() {
            
            for(int line=HEIGHT;line>0;line--) {
                System.out.print("|");
                
                    //输出右边的空格“ ”
                    for(int i=1;i<=(line-1);i++) {
                        System.out.print(" ");
                    }
                    
                    System.out.print("/");
                    
                    //输出点“.”
                    for(int i=1;i<=2*(HEIGHT-line);i++) {
                        System.out.print(".");
                    }
                    
                    System.out.print("\");
                    
                    //输出右边的空格“ ”
                    for(int i=1;i<=line-1;i++) {
                        System.out.print(" ");
                    }
    
                    System.out.println("|");
            }
            
        } 
        
        public static void drawLine() {
            System.out.print("+");
            for(int i=1;i<=2*HEIGHT;i++) {
                System.out.print("-");
            }
            System.out.println("+");
        }
    }

       代码结果显示:

  • 相关阅读:
    网红面试题['1','2','3'].map(parseInt)解析
    微信小程序——评论点赞功能
    微信小程序背景音频播放在6.7.2微信版本兼容
    微信小程序之音频播放
    jquery判断是否为空
    自定义单选按钮
    AJAX防重复提交
    dedecms 开发问题总结及解决方案
    程序员面试被问到“三次握手,四次挥手”怎么办?
    问题:The project cannot be built until build path errors are resolved
  • 原文地址:https://www.cnblogs.com/mujingyu/p/7392537.html
Copyright © 2011-2022 走看看