Java for循环打印菱形

article/2025/10/1 4:04:34

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

http://chatgpt.dhexx.cn/article/sL7N8yOE.shtml

相关文章

运用java打印出菱形

* * * * * * * * * * * * * * * * * * * * * * * * * 首先我们需要打印出空格跟打印出三角形是一样的我们需要用到循环嵌套 不同的是需要在for下面嵌套两个for import java.util.Scanner; public class TestLing{ public static void main (Stri…

Java打印菱形(一)

用Java实现实心菱形打印 如何用Java打印实心菱形&#xff1f; 我们可以把菱形拆分看成两个图形&#xff0c;一个正三角和一个倒三角图形&#xff0c;然后我们分别实现正三角和倒三角图形的打印&#xff0c;最后进行拼接成菱形 正三角打印 for (int i 1; i < 5; i) {//外…

java-打印空心的菱形

代码 /* 空心菱形 层数只能取奇数 */ public class HollowDiamond {/*** ** ********思路分析化繁为简1. 先打印一个矩形*************************2. 打印半个金字塔* //第1层 有 1个*** //第2层 有 2个**** //第3层 有 3个***** //第4层 有 4个****** //第5层…

使用java打印菱形(实心)

声明&#xff1a;图形的打印考验的是逻辑思维能力&#xff0c;与计算机语言熟练程度无关。逻辑思维能力弱的同鞋&#xff0c;做不了研发可以做开发。 一、效果图 代码&#xff1a; package com.test;/*** 实心菱形* * author PETER* */ public class TestDemo3 {public stati…

java打印菱形(Java打印菱形图案)

如何用java语句打印菱形 Java打印菱形图案第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印。 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系,…

(Java) 实现打印菱形图案

Java 实现打印菱形图案 一、直接看效果图&#xff1a; 随便输入一个数字&#xff0c;然后会生成一个宽度为该数字的菱形&#xff1a; 二、首先先来看下&#xff0c;菱形的结构&#xff0c;由符号和空格组成&#xff0c;所以就用for循环来实现这样的效果&#xff0c;然后来看代码…

Java使用for循环打印菱形

这是很多人在入门学习Java时,经常遇见的一种题,它考察的是学习者对for循环的理解程度. 解题思路:我们可以将菱形分为上下两部分,上部分空格逐行减少,星号逐行增加,下半部分则刚好相反,空格逐行增加,星号逐行减少. 下面是笔者所写代码. public class Demo {public static void…

Java打印菱形与空心菱形

打印菱形尤其是空心菱形对于初学者来说有一定难度&#xff0c;熟练掌握了for循环后&#xff0c;还是可以打印出来的 分析&#xff1a;1.先打印上半部分&#xff0c;再打印下半部分 2.找准空格与星号之间的关系&#xff0c;然后再打印 3.上半部分每一行数目分别为 1 、3、5、7、…

用Java打印菱形(奇数行菱形)

打印出如下图案&#xff08;菱形&#xff09; * *** ***** ******* ***** *** * 分析&#xff1a; 具有最多*的一行是第四行&#xff0c;且有7个。 将菱形看成有二个三角形组成的&#xff0c;上4行&#xff08;第一个三角形&#…

java 打印菱形和空心菱形

显示效果是这样的&#xff1a; 代码如下&#xff1a; int hangshu 11;int yiban hangshu / 2 1;int yibanduo hangshu / 2;System.out.println("空心菱形&#xff1a;");for(int k 1;k < yiban;k){for(int i 1;i < (yiban - k);i){System.out.print(&qu…

java实现打印菱形(任意输入数字打印任意阶菱形)

1.我们举例一个五阶菱形作为例子&#xff1a;如图 我们要打印输出如上图形&#xff0c;我们要先打印上半部分&#xff0c;第一行4个空格&#xff0c;然后打印1个星号&#xff0c;换行。接着打印3个空格&#xff0c;3个星号。2个空格&#xff0c;5个星号。1个空格和7个星号。最后…

Java实现打印输出菱形

Java实现打印输出菱形 思路 把菱形分成两部分输出&#xff0c;然后拼接 Scanner sc new Scanner(System.in);System.out.println("请输入一个整数&#xff1a;");int n sc.nextInt();//菱形上半部分for (int i 1; i < n; i) {//输出空格占位for (int j n; j…

Java打印菱形图案

打印菱形图案首先要对菱形进行分析&#xff0c;如下图示所示将菱形分为上下两部分&#xff0c;上部分 * 的数量是1、3、5、7、9以此类推&#xff0c;" "的数量是4、3、2、1;下半部分 * 的数量是7、5、3、1&#xff0c;" "的数量是1、2、3、4&#xff0c;以…

【技术】Java打印菱形

Java打印菱形 Java打印菱形先看效果&#xff1a;题目分析代码 Java打印菱形 先看效果&#xff1a; 题目分析 1、星号前面的空白要用空格代替。 2、把图形分为上下两部分&#xff0c;分别找出行数与“空格”和“*”的关系 上半部分&#xff08;正三角&#xff09;&#xff1a;…

Java语言打印菱形(附图解,简单易懂)

怎么打印以下菱形图案&#xff1f; 为了便于观看将所有" (空格)"改为"$"得到如下图: 该图形是利用for循环的嵌套&#xff0c;将该图形分为上下两个部分得到&#xff1a; 上半部分&#xff1a; 下半部分 分析&#xff1a; 行号“$”数“*”数一41二33三25四…

用Java语言编写打印菱形

Java典型例题&#xff08;打印菱形&#xff09; 题目&#xff1a;利用*号打印出一个菱形图样 分析&#xff1a;下面逐步分析菱形打印的推演过程 推演过程利用单独的方法演示&#xff0c;使用时直接在主方法中调用对应的方法即可。 第一步&#xff0c;打印一行*号 /** 打印…

java打印出一个菱形

题目 用键盘读入一个字符&#xff0c;然后在屏幕上显示一个用这个字符填充的对角线长5个字符&#xff0c;倾斜放置的菱形。 输入描述&#xff1a; 输入一个char类型字符 输出描述&#xff1a; 输出一个用这个字符填充的对角线长5个字符&#xff0c;倾斜放置的菱形 示例1 输入&a…

java;打印菱形

本文讲述如何用Java打印一个菱形&#xff0c;以及打印直角和等腰三角形的方法&#xff0c; 本文教程比较详细&#xff0c;如果想要直接学习菱形可以直接翻到本文最下方&#xff01;&#xff01;&#xff01; 左下角三角形 &#xff08;这里说的方位均是对应矩形来说&#xff09…

拓扑排序算法详解(通俗且详细)

数据结构第9章图——拓扑排序 … … …

【C语言】拓扑排序算法

文章目录 AOV网拓扑排序算法实现步骤代码实现 AOV网 在一个工程的有向图中&#xff0c;用顶点表示活动&#xff0c;用弧表示活动之间的优先关系&#xff0c;这样的有向图为顶点表示活动的网&#xff0c;我们称为AOV网&#xff08;Activity on Vertex Network&#xff09;。AOV…