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("+");
        }
    }

       代码结果显示:

  • 相关阅读:
    laravel 图片上传与前端显示问题
    laravel elquent distinct 用法
    JQuery跳出each循环的方法(包含数组遍历)
    Laravel分页以及样式——从未如此简单
    Laravel 的 Blade 模板引擎,当数据存在时输出变量
    laravel 图片上传与前端显示问题
    使用Laravel Eloquent ORM 时如何查询表中指定的字段
    Laravel中路由绑定 Controller 包含子目录写法
    php artisan 命令列表
    如何安装 Composer
  • 原文地址:https://www.cnblogs.com/mujingyu/p/7392537.html
Copyright © 2011-2022 走看看