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

代码结果显示:

for循环输出漏斗的形状【java】的更多相关文章

  1. for循环输出菱形的形状【java】

    使用for循环语句输出以下“菱形”效果: * *** ***** ******* ********* ******* ***** *** * 代码 /* * *** ***** ******* *** ...

  2. for循环输出树木的形状【java】

    使用for循环语句输出以下“树木”效果: * *** ***** ******* ********* * * * * * 代码: /* * *** ***** ******* ********* * ...

  3. for循环输出素数探究【java】

    一.判断953是不是为素数(质数). 代码: /** 判断953是不是为素数(质数) 分析: 素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 假设953是素数,则: ...

  4. for循环输出空心菱形的形状【java】

    使用for循环语句输出以下“空心菱形”效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: ...

  5. Java多线程:用三个线程控制循环输出10次ABC

    转载:http://www.cnblogs.com/gaopeng527/p/5257884.html 题目:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,要求, 同时启动三个 ...

  6. 042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用——循环输出英文字母

    042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用--循环输出英文字母 本文知识点:案例演示while循环的使用2 ...

  7. Java使用for循环输出杨辉三角

    杨辉三角形由数字排列,可以把它看做一个数字表,其基本特性是两侧数值均为1,其他位置的数值是其正上方的数字与左上角数值之和.编写程序,使用for循环输出包括10行在内的杨辉三角形. 思路是创建一个整型二 ...

  8. 关于hasNextInt判断后无限循环输出else项的解决办法

    话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public sta ...

  9. 使用for循环输出杨辉三角-还是不懂得需要复习

    package com.chongrui.test; /* *使用for循环输出杨辉三角杨辉三角形由数字排列,可以把它看作一个数字表,其基本特征是两侧的数值均为1,其他位置的数值是其正上方的数值与左上 ...

随机推荐

  1. tensorflow学习之(十一)RNN+LSTM神经网络的构造

    #RNN 循环神经网络 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data tf.se ...

  2. su与su -的区别

    su命令从普通用户切换到root用户下虽然可以切换,但是切换过后它所属的环境变量没有切换回原本属于root本身该有的环境变量,使用su - root 就可以切换会本来用户所属自身的变量

  3. mysql 统计某个月每天的数据

    select SUM(order_money) as money,substr(t.pay_time,1,10) as time  from pay_log t where  t.pay_time l ...

  4. 《Linux就该这么学》第十九天课程

    今天对“Linux就该这么学”课程做个收尾 最后一张使用LNMP架构部署动态网站环境 第1步:下载及解压源码包文件.为了方便在网络中传输,源码包文件通常会在归档后使用gzip或bzip2等格式进行压缩 ...

  5. uni-app 顶部导航点击更换图标

    更换顶部导航的iconfont.ttf图标,先在配置文件配置好按钮: pages.json文件 "buttons": [ { "text": "\ue ...

  6. Effective Java 【考虑实现Comparable接口】

    Effective Java --Comparable接口 compareTo方法是Comparable接口的唯一方法.类实现了Comparable接口,表明它的实例具有内在的排序关系. 自己实现co ...

  7. PHP与Excel 笔记

    一:   PHP将数据导出Excel表中(投机型) 二: PHPExcel: Github上可以下载此插件包,用法如下: 前端: //上传阅卷员Excel文件 $("#upload_memb ...

  8. docker之tomcat简单部署

    将apache-tomcat-8.0.36.tar.gz及jdk-7u79-linux-x64.gz拷贝到创建的tomcat8目录下 在tomcat8目录下创建Dockerfile文件 在Docker ...

  9. kubernetes1.7.6 ha高可用部署

    写在前面:  1. 该文章部署方式为二进制部署. 2. 版本信息 k8s 1.7.6,etcd 3.2.9 3. 高可用部分 etcd做高可用集群.kube-apiserver 为无状态服务使用hap ...

  10. Linux 搜某个文件里关键字的上下500行到执行文件里

    Linux 搜某个文件里关键字的上下500行到执行文件里grep '300000111110' -C 500 ./saastom7061_APP3/logs/sass.log >/app/saa ...