Java for循环打印菱形

Java代码输出菱形的方法和思路有很多,在此分享一个稍带模块化拆分思想的解决方案,将需要输出的菱形拆分成8个模块(如下图),每个模块独立实现输出。
优点:8个模块之间耦合性降低,灵活性增强。也就是说我们可以独立的控制这8个模块中任意一个模块的输出内容来灵活应对业务逻辑的变更。

按照上图标好的顺序依次实现这8个模块的代码,当1458模块输出为空格时,其中2367模块的组合,就是一个菱形。
思路分析:

        1      ######*######  第一排 模块1[6个"#"]+模块2[1个"*"]+模块3[0个"*"]+模块4[6个"#"]2      #####***#####3      ####*****####4      ###*******###5      ##*********##6      #***********#--------------------------------------------------------7      ##*********##  第七排 模块5[2个"#"]+模块6[5个"*"]+模块7[4个"*"]+模块8[2个"#"]8      ###*******###9      ####*****####10      #####***#####11      ######*######

代码示例:

public class Demo {public static void main(String[] args) {//为了输出效果在输出时将思路分析中的"#"替换为" "空格输出for (int i = 1; i <= 11; i++) {if (i <= 6) {//当i <=6时打印上三角形//模块 1for (int j = 6; j >= i; j--) {System.out.print(" ");}//模块 2for (int j = 0; j < i; j++) {System.out.print("*");}//模块 3[同一排中模块3的"*"个数总比模块2少1个,所以这里j <i-1作为循环条件即可]for (int j = 0; j < i - 1; j++) {System.out.print("*");}//模块 4for (int j = 6; j >= i; j--) {System.out.print(" ");}//换行System.out.println();} else {//当i >6时打印下三角形//模块 5for (int j = 7; j <= i + 1; j++) {System.out.print(" ");}//模块 6for (int j = 11; j >= i; j--) {System.out.print("*");}//模块 7for (int j = 11; j >= i + 1; j--) {System.out.print("*");}//模块 8for (int j = 7; j <= i + 1; j++) {System.out.print(" ");}//换行System.out.println();}}}
}

运行结果:

F:\software\Java\jdk1.8.0_121\bin\java.exe "-javaagent:D:\IntelliJ IDEA 2019.1.4\lib\idea_rt.jar=50753:D:\IntelliJ IDEA 2019.1.4\bin" -Dfile.encoding=UTF-8 -classpath F:\software\Java\jdk1.8.0_121\jre\lib\charsets.jar;F:\software\Java\jdk1.8.0_121\jre\lib\deploy.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;F:\software\Java\jdk1.8.0_121\jre\lib\javaws.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jce.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jfr.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jsse.jar;F:\software\Java\jdk1.8.0_121\jre\lib\management-agent.jar;F:\software\Java\jdk1.8.0_121\jre\lib\plugin.jar;F:\software\Java\jdk1.8.0_121\jre\lib\resources.jar;F:\software\Java\jdk1.8.0_121\jre\lib\rt.jar;D:\ideastudyspace\spring_study\spring-study\spring-study-aop\target\classes;E:\software\MavenRepository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;E:\software\MavenRepository\org\springframework\spring-webmvc\5.2.0.RELEASE\spring-webmvc-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-aop\5.2.0.RELEASE\spring-aop-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-beans\5.2.0.RELEASE\spring-beans-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-context\5.2.0.RELEASE\spring-context-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-core\5.2.0.RELEASE\spring-core-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-jcl\5.2.0.RELEASE\spring-jcl-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-expression\5.2.0.RELEASE\spring-expression-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-web\5.2.0.RELEASE\spring-web-5.2.0.RELEASE.jar;E:\software\MavenRepository\com\alibaba\fastjson\1.2.47\fastjson-1.2.47.jar com.shiguang.test.Demo*      ***     *****    *******   *********  *********** *********  *******   *****    ***     *      Process finished with exit code 0

业务变更: 打印一个空心菱形
此时只需要将1458模块输出为"*",2367模块输出为空格即可得到一个空心菱形。

代码示例:

public class Demo2 {public static void main(String[] args) {for (int i = 1; i <= 11; i++) {if (i <= 6) {//当i <=6时打印上三角形//模块 1for (int j = 6; j >= i; j--) {System.out.print("*");}//模块 2for (int j = 0; j < i; j++) {System.out.print(" ");}//模块 3[同一排中模块3的"*"个数总比模块2少1个,所以这里j <i-1作为循环条件即可]for (int j = 0; j < i - 1; j++) {System.out.print(" ");}//模块 4for (int j = 6; j >= i; j--) {System.out.print("*");}//换行System.out.println();} else {//当i >6时打印下三角形//模块 5for (int j = 7; j <= i + 1; j++) {System.out.print("*");}//模块 6for (int j = 11; j >= i; j--) {System.out.print(" ");}//模块 7for (int j = 11; j >= i + 1; j--) {System.out.print(" ");}//模块 8for (int j = 7; j <= i + 1; j++) {System.out.print("*");}//换行System.out.println();}}}
}

运行结果:

F:\software\Java\jdk1.8.0_121\bin\java.exe "-javaagent:D:\IntelliJ IDEA 2019.1.4\lib\idea_rt.jar=50681:D:\IntelliJ IDEA 2019.1.4\bin" -Dfile.encoding=UTF-8 -classpath F:\software\Java\jdk1.8.0_121\jre\lib\charsets.jar;F:\software\Java\jdk1.8.0_121\jre\lib\deploy.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;F:\software\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;F:\software\Java\jdk1.8.0_121\jre\lib\javaws.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jce.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jfr.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;F:\software\Java\jdk1.8.0_121\jre\lib\jsse.jar;F:\software\Java\jdk1.8.0_121\jre\lib\management-agent.jar;F:\software\Java\jdk1.8.0_121\jre\lib\plugin.jar;F:\software\Java\jdk1.8.0_121\jre\lib\resources.jar;F:\software\Java\jdk1.8.0_121\jre\lib\rt.jar;D:\ideastudyspace\spring_study\spring-study\spring-study-aop\target\classes;E:\software\MavenRepository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;E:\software\MavenRepository\org\springframework\spring-webmvc\5.2.0.RELEASE\spring-webmvc-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-aop\5.2.0.RELEASE\spring-aop-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-beans\5.2.0.RELEASE\spring-beans-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-context\5.2.0.RELEASE\spring-context-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-core\5.2.0.RELEASE\spring-core-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-jcl\5.2.0.RELEASE\spring-jcl-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-expression\5.2.0.RELEASE\spring-expression-5.2.0.RELEASE.jar;E:\software\MavenRepository\org\springframework\spring-web\5.2.0.RELEASE\spring-web-5.2.0.RELEASE.jar;E:\software\MavenRepository\com\alibaba\fastjson\1.2.47\fastjson-1.2.47.jar com.shiguang.test.Demo
****** ******
*****   *****
****     ****
***       ***
**         **
*           *
**         **
***       ***
****     ****
*****   *****
****** ******Process finished with exit code 0

Java for循环打印菱形相关推荐

  1. java用循环打印菱形(可以自己输出打多少行)简单好懂

    package aa; import java.util.Scanner; public class Tg02 {public static void main(String args[]){Scan ...

  2. java演练 循环嵌套 菱形图案的打印 四个阶段完成输出

    java演练 循环嵌套 菱形图案的打印 阶段一,视频 https://www.ixigua.com/6870331861256634894/ 阶段一,数据分析 阶段二,视频 http://mp.tou ...

  3. 应用for循环打印菱形

    应用for循环打印菱形 大家的应用for循环打印菱形打的多了,我就不发了,所以我就弄了一个前头的符号: 类型如下:整数类型 方法如下:循环方法 这是箭头上的符号: 顺便提醒一句:这里有一行代码是有问题 ...

  4. 用Java语言编写打印菱形

    Java典型例题(打印菱形) 题目:利用*号打印出一个菱形图样 分析:下面逐步分析菱形打印的推演过程 推演过程利用单独的方法演示,使用时直接在主方法中调用对应的方法即可. 第一步,打印一行*号 /** ...

  5. java使用循环打印平行四边形、三角形、棱形、空心棱形

    使用循环打印平行四边形.棱形 1.打印边长为5矩形 private static void fun1() {for(int i=0;i<5;i++){for (int j=0;j<5;j+ ...

  6. 简单使用循环打印菱形小星星

    学习python也有一段时间了,学习的东西也不少了,就这段时间学习的循环语句,发点学习的记录,并举一个打印小星星的列子,用来总结一下. Python中循环主要有while循环,for 循环,通过循环间 ...

  7. python中for循环打印菱形_Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...

  8. 2、Java——for循环打印九九乘法口诀表

    1.效果展示  2.代码展示 由于最近学习了java语言的for循环,今天在复习巩固知识,练习代码的时候,简单的总结了三种for循环打印九九乘法口诀的方法,加深了自己的理解.现将代码分享给各位博友 因 ...

  9. 蓝桥杯第六届省赛JAVA真题----打印菱形

    打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...

最新文章

  1. C++中const指针用法汇总
  2. 升级PHP到5.3.3的过程及注意事项
  3. 图论--Floyd总结
  4. 小凡模拟器:DynamipsGUI使用问题解决方法
  5. HTML用ONMOUSEOVER,ONMOUSEOUT改变背景色或背景图片的方法
  6. SQL批量更新 关系表更新
  7. easyui源码翻译1.32--Droppable(放置)
  8. 手把手教你学单片机--51单片机C语言开发
  9. adobe premiere 不支持的视频驱动程序
  10. 终于找到破坏(被锁)广联达云计价平台GCCP6.0工程文件的罪魁祸首,显示:您的工程可能受到盗版侵害……
  11. 直观理解 梯度(gradient)
  12. 操作系统 内存分配-分区
  13. Transformer最新综述
  14. 梯度下降求函数最小值C++样例
  15. 项目管理 | 如何制定项目章程?|附项目章程模板下载
  16. 做数据分析的女孩子,职业发展前景在哪里?数据分析枯燥吗?
  17. 你离拍出好的雪景作品,还有多远? @教摄影
  18. php的未来发展,关于PHP未来发展的N个严肃思考
  19. ATK-AS608 指纹识别模块常见问题和疑问
  20. 撩男友c语言程序,可以撩到男朋友的甜甜情话 撩到男生心动的情话大全

热门文章

  1. 2022.3.20 分享会Ver.2.0
  2. ajax datatype 文件,关于ajaxFileUpload中dataType的有关问题
  3. (三)全志T507主板6路AHD摄像头的使用
  4. Tableau 空难统计分析(七)2014年的国际空难
  5. git下载代码的两种方式
  6. 办公室计算机打印机共享,办公室中的几台计算机通过wifi网络共享打印机
  7. [SDOI2018]战略游戏 圆方树+虚树
  8. vite npm 升级所有依赖包
  9. 网易射击手游堡垒前线明日上线:创造加吃鸡模式你喜欢吗?
  10. Apple发布新电脑