Java for循环打印菱形
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循环打印菱形相关推荐
- java用循环打印菱形(可以自己输出打多少行)简单好懂
package aa; import java.util.Scanner; public class Tg02 {public static void main(String args[]){Scan ...
- java演练 循环嵌套 菱形图案的打印 四个阶段完成输出
java演练 循环嵌套 菱形图案的打印 阶段一,视频 https://www.ixigua.com/6870331861256634894/ 阶段一,数据分析 阶段二,视频 http://mp.tou ...
- 应用for循环打印菱形
应用for循环打印菱形 大家的应用for循环打印菱形打的多了,我就不发了,所以我就弄了一个前头的符号: 类型如下:整数类型 方法如下:循环方法 这是箭头上的符号: 顺便提醒一句:这里有一行代码是有问题 ...
- 用Java语言编写打印菱形
Java典型例题(打印菱形) 题目:利用*号打印出一个菱形图样 分析:下面逐步分析菱形打印的推演过程 推演过程利用单独的方法演示,使用时直接在主方法中调用对应的方法即可. 第一步,打印一行*号 /** ...
- java使用循环打印平行四边形、三角形、棱形、空心棱形
使用循环打印平行四边形.棱形 1.打印边长为5矩形 private static void fun1() {for(int i=0;i<5;i++){for (int j=0;j<5;j+ ...
- 简单使用循环打印菱形小星星
学习python也有一段时间了,学习的东西也不少了,就这段时间学习的循环语句,发点学习的记录,并举一个打印小星星的列子,用来总结一下. Python中循环主要有while循环,for 循环,通过循环间 ...
- python中for循环打印菱形_Python 使用双重循环打印图形菱形操作
如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...
- 2、Java——for循环打印九九乘法口诀表
1.效果展示 2.代码展示 由于最近学习了java语言的for循环,今天在复习巩固知识,练习代码的时候,简单的总结了三种for循环打印九九乘法口诀的方法,加深了自己的理解.现将代码分享给各位博友 因 ...
- 蓝桥杯第六届省赛JAVA真题----打印菱形
打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...
最新文章
- C++中const指针用法汇总
- 升级PHP到5.3.3的过程及注意事项
- 图论--Floyd总结
- 小凡模拟器:DynamipsGUI使用问题解决方法
- HTML用ONMOUSEOVER,ONMOUSEOUT改变背景色或背景图片的方法
- SQL批量更新 关系表更新
- easyui源码翻译1.32--Droppable(放置)
- 手把手教你学单片机--51单片机C语言开发
- adobe premiere 不支持的视频驱动程序
- 终于找到破坏(被锁)广联达云计价平台GCCP6.0工程文件的罪魁祸首,显示:您的工程可能受到盗版侵害……
- 直观理解 梯度(gradient)
- 操作系统 内存分配-分区
- Transformer最新综述
- 梯度下降求函数最小值C++样例
- 项目管理 | 如何制定项目章程?|附项目章程模板下载
- 做数据分析的女孩子,职业发展前景在哪里?数据分析枯燥吗?
- 你离拍出好的雪景作品,还有多远? @教摄影
- php的未来发展,关于PHP未来发展的N个严肃思考
- ATK-AS608 指纹识别模块常见问题和疑问
- 撩男友c语言程序,可以撩到男朋友的甜甜情话 撩到男生心动的情话大全
热门文章
- 2022.3.20 分享会Ver.2.0
- ajax datatype 文件,关于ajaxFileUpload中dataType的有关问题
- (三)全志T507主板6路AHD摄像头的使用
- Tableau 空难统计分析(七)2014年的国际空难
- git下载代码的两种方式
- 办公室计算机打印机共享,办公室中的几台计算机通过wifi网络共享打印机
- [SDOI2018]战略游戏 圆方树+虚树
- vite npm 升级所有依赖包
- 网易射击手游堡垒前线明日上线:创造加吃鸡模式你喜欢吗?
- Apple发布新电脑