JAVA用for循环打印空心菱形

 更新时间:2022年01月29日 09:05:45   作者:qq_58661548  
大家好,本篇文章主要讲的是JAVA用for循环打印空心菱形,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

空心菱形如图所示

那么我们应该如何去写出来呢?这就不得不引出一个非常经典的案例,金字塔案例,菱形像不像是两个对称的金字塔呢?废话不多说了,上思路:(仅代表个人理解,欢迎指点)

1.首先我们要写出一个空心菱形,那么我们首先得把需求由繁化简,把他拆分成一个一个简单的需求,

1.1那我们就先写半个金字塔,

是不是很眼熟的结构,没错和九九乘法表类似的结构,上代码

for(int i = 1;i <= 5;i++){ //i代表层数,这个可以设置一个变量接收,随便几层都行,不一定非要是5
			for(int j = 1;j <= i;j++){ //j代表个数
				System.out.print("*");
			}
			System.out.print("\n");
            //System.out.println(" ");这样也行
		}

 半个金字塔出来了,那我们接下来就写一个完整的空心金字塔

//输出一个空心金字塔
		//思路分析:	
		//1.补全金字塔
		//    *   //空格数为 总层数 - 1 //个数为 1 3 5 7 9 什么规律呢 就是 2 * 当前层数 - 1
	    //   ***  //空格数为 总层数 - 1
	    //  *****
	    // *******
	    //*********	  
	    //2.将金字塔镂空
        //   *    第一层 1个
        //  *  *  第二次 2个
        // *     *第三层 2个
        //  ....  第n层  2个
        //*********最后一层 全部有
        //大致就是这个图形,(图形不准确,请自行脑补)
		for(int i = 1;i <= 5;i++){// i是层数
			//打印出每层前面的空格数
			for(int k = 1;k <= 5 - i;k++){
				System.out.print(" ");
			}
			//控制每层打印的个数
			for(int j = 1;j <= 2 * i - 1;j++){ //j是个数
				//空心金字塔都是第一个和最后一个位置有*,最后一层则是全部输出
				if(j == 1 || j == 2 * i - 1|| i == 5){ 
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}

 那么菱形就已经很简单了 我们只需要把空心金字塔最后一层的全部输出去掉 也就是 i == 5注销,就得到这么一个东西

菱形的工作已经完成了大半,接下来照猫画虎把下半部分写出来就可以了

for(int a = 4;a > 0;a--){
			//打印空格
			for(int c = 1;c <= 5 - a;c++){
				System.out.print(" ");
			}
			for(int b = 1;b <= 2 * a -1;b++){
				if( b ==1 || b == 2 * a -1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}

虽然菱形的下半部分是一个倒过来的金字塔, 但是其规律并没有发生变化,空格数依旧是总层数 - 1

个数也没有发生变化,就是顺序倒过来,把++改成--就好了

完整的代码:

for(int i = 1;i <= 5; i++){
			//控制前面的空格数
			for(int k = 1;k <= 5 - i;k++){
				System.out.print(" ");
			}
			//控制每行输出的*的个数
			for(int j = 1;j <= 2 * i - 1;j++){
				//每行第一个和最后一个位置有*,最后一行全有
				if(j == 1 || j == 2 * i - 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}
		for(int a = 4;a > 0;a--){
			//打印空格
			for(int c = 1;c <= 5 - a;c++){
				System.out.print(" ");
			}
			for(int b = 1;b <= 2 * a -1;b++){
				if( b ==1 || b == 2 * a -1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.print("\n");
		}

到此这篇关于JAVA用for循环打印空心菱形的文章就介绍到这了,更多相关JAVA for循环输出菱形内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑
    2021-06-06
  • Java基础之Math和Random类知识总结

    Java基础之Math和Random类知识总结

    今天带大家来学习java的Math和Random类,文中有非常详细的代码示例及介绍,对正在学习java基础的小伙伴们很有帮助哟,需要的朋友可以参考下
    2021-05-05
  • SpringBoot实现简易支付宝网页支付功能

    SpringBoot实现简易支付宝网页支付功能

    小编最近实现一个功能基于springboot程序的支付宝支付demo,非常不错适合初学者入门学习使用,今天把SpringBoot实现简易支付宝网页支付功能的示例代码分享给大家,感兴趣的朋友参考下吧
    2021-10-10
  • mybatis plus条件构造器queryWrapper、updateWrapper

    mybatis plus条件构造器queryWrapper、updateWrapper

    这篇文章主要介绍了mybatis plus条件构造器queryWrapper、updateWrapper,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringBoot防止大量请求攻击的实现

    SpringBoot防止大量请求攻击的实现

    在有些特定的时候需要加上IP访问时间限制,防止一个IP多次访问请求,本文主要介绍了SpringBoot防止大量请求攻击的实现,感兴趣的可以了解一下
    2021-11-11
  • Java中JWT的使用的详细教程

    Java中JWT的使用的详细教程

    JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输,本文介绍了Java中JWT的使用,需要的朋友可以参考下
    2023-02-02
  • Spring动态注册多数据源的实现方法

    Spring动态注册多数据源的实现方法

    这篇文章主要介绍了Spring动态注册多数据源的实现方法,小编觉的挺不错的,现分享到脚本之家平台,需要的朋友可以参考下
    2018-01-01
  • 深入聊一聊springboot项目全局异常处理那些事儿

    深入聊一聊springboot项目全局异常处理那些事儿

    最近在做项目时需要对异常进行全局统一处理,所以下面这篇文章主要给大家介绍了关于springboot项目全局异常处理那些事儿,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Java中List转换成Map的两种实现方式

    Java中List转换成Map的两种实现方式

    Java中List转Map常用Stream API,通过collect(Collectors.toMap())实现,需明确键值规则并处理重复键冲突,支持灵活扩展
    2025-09-09
  • java实现飞机大战案例详解

    java实现飞机大战案例详解

    这篇文章主要为大家详细介绍了java实现飞机大战案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论