栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java打印菱形

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java打印菱形

菱形可拆看成一个正三角形跟一个倒三角行组成,因此可分两步来走

1、先打印正三角形

先用for循环来整个遍历,再打印倒直角三角形空白字符来占据空间,使我们所需的三角形变成一个正三角形

//打印上半层
		for(int i = 1; i <= totalLevel-1; i++) {				
			for(int k = 1; k <= totalLevel - 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.println();					//换行
		}

2、打印倒三角形

        原理和正三角形差不多,区别在于每层的打印数跟正三角形的刚好反过来,所以循环条件需要自己理清楚。

//打印下半层	
		for(int i = 1; i <= totalLevel; i++) {			//遍历			
			for(int k = 1; k <= i-1; k++) {				//打印空格来塑形
				System.out.print(" ");
			}
			for(int j = 1; j <= 2*totalLevel-a; j++) {	//每层遍历次数
				if(j == 1 || j == 2*totalLevel-a) {		//当前行的第一个位置,跟最后一个位置,最后一行打印*
					System.out.print("*");
				}
				else {									//否则打印空格
					System.out.print(" ");
				}
			}
			a+=2;
			System.out.println();
		}

3、最后再键盘输入层数,当然因为菱形是奇数层的,所以层数的奇偶有所要求,这里加个判断,筛选出偶数才予以通过,然后让上半层少一层,循环条件里减1即可,让菱形中的中间层给到下半层画出来。整体代码如下:

//打印菱形
	private static void printfLing() {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入偶数层数:");
		int totalLevel = scan.nextInt();				//层数
		int a = 1;
		if(totalLevel < 0 || totalLevel % 2 != 0) {		//判断输入层数为偶数且不为负数
			System.out.println("输入层数不符合要求!");
			return;
		}
		System.out.println("输出结果如下:");
		
		//打印上半层
		for(int i = 1; i <= totalLevel-1; i++) {				
			for(int k = 1; k <= totalLevel - 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.println();						//换行
		}
		
		//打印下半层	
		for(int i = 1; i <= totalLevel; i++) {			//遍历			
			for(int k = 1; k <= i-1; k++) {				//打印空格来塑形
				System.out.print(" ");
			}
			for(int j = 1; j <= 2*totalLevel-a; j++) {	//每层遍历次数
				if(j == 1 || j == 2*totalLevel-a) {		//当前行的第一个位置,跟最后一个位置,最后一行打印*
					System.out.print("*");
				}
				else {									//否则打印空格
					System.out.print(" ");
				}
			}
			a+=2;
			System.out.println();
		}
	}

结果如下: 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号