Java打印菱形图

Java打印菱形图1.首先看

1.首先,要打印的图形如下所示:

Java打印菱形图

2. 分析

1) 把整体看成上下部分,上部分是一个三角形,下部分是个倒三角形,另外星号前后的空格也是该图形的一部分。

2)首先,我们先来分析上部分,所以对于上部分,我们可以把空格和星号当作一个整体,那么它就成了一个矩形状。

       要打印矩形状,显然需要二重循环才能实现,然后在打印的时候无非是控制输出空格或星号的问题了。

3)由上图可知,上部分三角形的第一行星号在从中间位置开始,第二行的星号是从中间位置的前一个开始,

      第三行的星号是从中间位置的前两个开始,……,并且,如果假设row表示当前第row行,那么每一行打印星号的个数为(row-1)*2 +1

4)下部分三角形第一行要跳跃一行,每一行的打印星号的起始位置就等于当前是第几行row,且每行输出星号的个数为

       整个图形的最大列数(cols)- 当前第几行(row)* 2

3.源码

/**
*打印星号组成的菱形状图形
*/
class PrintRhombus{

	public static void main(String[] args) throws Exception{
	
		int rows = 6;    //行数
		int cols = 11;   //列数
		
		//打印上面部分的三角形
		
		for(int i = 0; i < rows; i++){ //控制行数
		
			int pos = (cols/2 + 1) - i; //得到每一行第一个输出星号的位置
		
			for(int j = 1; j <= cols; j++ ){ //控制列数
							
				if(pos == j){  //当遇到第一个输出星号的位置时
				
					for(int k = 0; k < i*2+1 ; k++){   //输出每行的星号
					
						System.out.print("*");
					}
					
				}
				else{	//其他地方都输出空格
					System.out.print(" ");
				}
			}
			
		
			System.out.println();	//换行
			
			
		}
		
		//打印下面部分的倒置三角形
	
	
		for(int i = 1; i < rows; i++){ //控制行数
								
			int pos =  (i + 1) ;   //得到每一行第一个输出星号的位置
			
			for(int j = 1; j <= cols; j++ ){ //控制列数	 	
				
				if(pos == j){ //当遇到第一个输出星号的位置时
				
					for(int k = 0; k < cols-(i*2); k++){ //输出每行的星号
					
						System.out.print("*");
					}
					
				}
				else{  //其他地方都输出空格
					System.out.print(" "); 
				}
			}
			
			System.out.println();  //换行
		}
				
	}
}

今天的文章Java打印菱形图分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10247.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注