使用Java中for循环打印等边三角形、正方形、五边形及心形

使用Java中for循环打印等边三角形、正方形、五边形及心形


目前网上有许多用for循环,在控制台打印*正方形、三角形、五边形等,但是大多都不够规整,作为程序员的入门案例,当然得做的漂漂亮亮、工工整整,才能切合程序员追求完美代码的态度。

正方形

int a = 5;					//定义正方形	边长
for(int i=1;i<=a;i++){      //外层循环    正方形 行数:a
	for(int j =1;j<=a;j++){ //内层循环    正方形 列数:a
		System.out.print(" *"); //每一行打印a次" *"
	}
	System.out.println();      //打印完一行后换行
}

正方形 效果图:正方形

等边三角形

int num1 = 5;                   //定义正三角形	边长  
for(int i = 1;i<=num1;i++){	    //外层循环    行数:num1
	for(int j =num1;j>=i;j--){	//内层循环    每行空格数  
		System.out.print(" ");  //每行打印的" "数	从num1到1递减 		每次打印不换行
	}
	for(int j =1;j<=i;j++){		//内层循环    每行*数
		System.out.print(" *");	//每行打印的" *"数	从1到num1递增  		接着上面打印的" "	 每次打印不换行
	}
	System.out.println();       //打印完一行后换行
}

等边三角形 效果图:等边三角形

梯形

int hang = 5;						//定义梯形		行数
int num2 = 6;						//定义梯形		上底长度
for(int i =1;i<=hang;i++){			//外层循环    行数:hang
	for(int j =hang;j>=i;j--){		//内层循环    每行空格数  
		System.out.print(" ");		//每行打印的" "数  	从hang到1递减   		每次打印不换行
	}
	for(int j =1;j<num2+i;j++){		//内层循环    每行*数  
		System.out.print("* ");		//每行打印的"* "数   	从num2到num2+i-1递增  	每次打印不换行 
	}
	System.out.println();			//打印完一行后换行
}

梯形 效果图:梯形

五边形

for(int i =1;i<4;i++){				//打印前3行
	for(int j=4;j>=2*i-1;j--){  	//打印空格		第一行4" "	第二行2" "
		System.out.print(" ");
	}
	for(int j=1;j<=2*i-1;j++){		//打印*		第一行1"* "	第二行3"* "	第三行4"* "
		System.out.print("* ");
	}
	System.out.println();			//打印完一行后换行
}								   
		
for(int i =1;i<=2;i++){				//打印后2行           
	for(int j =1;j<=i;j++){			//打印空格		第四行1" "	第五行2" "
		System.out.print(" ");
	}
	for(int j =4;j>=i;j--){			//打印*		第四行4"* "	第五行3"* "
		System.out.print("* ");
	}
	System.out.println();			//打印完一行后换行
}

五边形 效果图:五边形
特别注意:
System.out.print(" *");
print: 不换行打印
" *": 空格 *,可使打印出的图形规整

空 心形

for (int i = 1; i <= 3; i++) {
	for (int j = 3; j >= i; j--) {
		System.out.print(" ");
	}
	System.out.print("*");

	for (int j = 1; j <= i; j++) {
		System.out.print("  ");
	}
	System.out.print("*");
			
	for (int j = 2; j >= i; j--) {
		System.out.print("  ");
	}
	System.out.print("*");
			
	for (int j = 1; j <= i; j++) {
		System.out.print("  ");
	}
	System.out.print("*");
			
	System.out.println();
} 							// 打印1-3行

		for (int i = 0; i <= 7; i++) {
			for (int j = 0; j <= i; j++) {
				System.out.print(" ");
			}
			System.out.print("*");

			for (int j = 6; j >= i; j--) {
				System.out.print(" ");
			}
			for (int j = 6; j >= i; j--) {
				System.out.print(" ");
			}
			System.out.print("*");
			
			System.out.println();
		}  							//打印4-11行

空 心形 效果图:空心形
总感觉不够完美,好像还缺少些什么,代码还可再优化。

实 心形

// 实 心型
				for (int i = 1; i <= 3; i++) {
					for (int j = 3; j >= i; j--) {
						System.out.print(" ");
					}
					System.out.print("*");

					for (int j = 1; j <= i; j++) {
						System.out.print("**");
					}
					System.out.print("*");
					
					for (int j = 2; j >= i; j--) {
						System.out.print("  ");
					}
					System.out.print("*");
					
					for (int j = 1; j <= i; j++) {
						System.out.print("**");
					}
					System.out.print("*");
					
					System.out.println();
				} 							// 打印1-3行

				for (int i = 0; i <= 7; i++) {
					for (int j = 0; j <= i; j++) {
						System.out.print(" ");
					}
					System.out.print("*");

					for (int j = 6; j >= i; j--) {
						System.out.print("*");
					}
					for (int j = 6; j >= i; j--) {
						System.out.print("*");
					}
					System.out.print("*");
					
					System.out.println();
				}  							//打印4-11行	
		

实 心形 效果图:实心形
实心形直接把空心形里空格换*,代码可优化。

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值