Java—For循环-嵌套循环-菱形

1.打印菱形
任务:打印一个上下对称的菱形

	 *
	***
   *****
  *******
 *********
***********
 *********
  *******
   *****
     *

1首先做一个直角三角形

int rows = 6;
	for(int i=1;i<=rows;i++){//i=1
	for(int j = 1; j <= i*2-1; j++){//只能干预的位置是j的范围
		System.out.print("*");	
			}
			System.out.println();
		}
		*
		***
		*****
		*******
		*********
		***********

2.做一个空白位置

int rows = 6;
		for(int i=1;i<=rows-1;i++){ //i=2	
			for(int j=rows-1;j>i;j--){//j=5
				System.out.print("&");	
			}
			System.out.println();
		} 
		&&&&&
		&&&&
		&&&
		&&
		&

在将两者融合做一个等腰三角形

int rows = 6;
		for(int i = 1;i <= rows;i++){ //i=2
			for(int j = rows - 1;j > i;j--){//j=5
				System.out.print("&");	
			}
			for(int k = 1; k <= i*2-1; k++){//只能干预的位置是j的范围
				System.out.print("*");	
			}
			System.out.println();
		}  
		&&&&&*
		&&&&***
		&&&*****
		&&*******
		&*********
		*********** 
		
再做一个完整的菱形
int rows = 6for(int i = 1;i <= rows;i++){ //i=2
		for(int j = rows;j > i;j--){//j=5
				System.out.print(" ");	
				}
		for(int k = 1; k <= i*2-1; k++){
				System.out.print("*");	
				}
		System.out.println();
		} 
		for(int i=rows-1;i>0;i--){//i=1 23456
			 for(int j = 1; j <=rows-i ; j++){
				System.out.print(" ");
				}  
			for(int k = 1; k <= 2*i-1;k++){
				System.out.print("*");	
			    }
		System.out.println();		
		}
			 *
		    ***
		   *****
		  *******
		 *********
		***********	
		 *********   
		  *******   
		   *****   
		    ***   
		     *   

再加入可用控制台选择菱形的高度

import java.util.Scanner;

class sumer{
	public static void main (String[] args){
		Scanner input = new Scanner(System.in);
		int totalRows=0; //总行数
		do{System.out.println("请输入总行数:"); 
		totalRows =input.nextInt();
		}while(totalRows %2 ==0);//判断行数为奇数否则重新输入
		
		int halfrows = totalRows/2+1;//上半行
		int downfrows = totalRows/2;//下半行
		
	 	for(int i = 1;i <=halfrows;i++){ //上
			for(int j = halfrows;j>i;j--){//上空白处
				System.out.print(" ");	
			}
			for(int k = 1; k <= i*2-1; k++){//上图形处
				System.out.print("*");	
			}
			System.out.println();
		} 
		
			for(int i=downfrows;i>0;i--){//下
			 for(int j = 1; j <=downfrows-i+1 ; j++){//下空白处
				System.out.print(" ");
			}  
			for(int k = 1; k <= 2*i-1;k++){//下图形处
				System.out.print("*");	
			}
				System.out.println();		
		}
		}
	}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值