For循环写各种图形(Day Eight)

1.先了解for语句是如何执行的

for循环:

语法结构:
for(初始值;循环条件;迭代部分){
循环操作 }
执行规律:
1)首先执行1次初始值代码
2)判断循环条件是否成立,如果循环条件为true,则执行{}里的循环操作代码,执行循环操作后,进行迭代,迭代完再进行循环条件判断,根据循环条件的结果决定是否继续执行循环操作。如果循环条件为false,则结束整个for循环结构,继续往下执行for循环结构之后的代码
注意:
1)初始值只执行1次
2)循环条件只能是布尔值,要么为true,要么为false
3)如果第一次判断循环条件就不满足,那么循环操作一次都不会执行

2.借助代码来了解

	public static void main(String[] args) {
		/*
		 * 在控制台输出如下图形
		 * 		    *****
		 * 	       *****
		 * 		  *****
		 * 		 *****
		 * 		*****
		 */
		
		//外层循环控制行数
		for(int i =1;i<=5;i++){
			//输出每一行的空格
			for(int k =5-i;k>0;k--){
				System.out.print(" ");
			}
			
			//内层循环控制每一行的列数,内层循环输出每一行的*
			for(int j =1;j<=5;j++){
				System.out.print("*");
			}
			//换行
			System.out.println();
		}
	}

3.了解以后来做几个题目

在控制台打印下面的图形:
在这里插入图片描述
乍一看是不是觉等很难,不要怕,一步一步来分析。

	public static void main(String[] args) {
		// 打印六边形
		//写这个的时候一定要有思路,不能乱,没有思路先找一找规律。有时候,规律出来了,思路就有了。
		// 上半部图形
		for (int i = 1; i <= 6; i++) {	//先确定行数
			for (int j = 6 - i; j > 0; j--) {	//再去打印每一行开头的空格数量
				System.out.print(" ");
			}
			for (int k = 2 * (i - 1) + 6; k > 0; k--) {		//最后就是打印*
				System.out.print("*");
			}
			System.out.println();
		}
		// 下半部图形
		for (int i = 5; i > 0; i--) {
			for (int j = 6 - i; j > 0; j--) {
				System.out.print(" ");
			}
			for (int k = 2 * (i - 1) + 6; k > 0; k--) {
				System.out.print("*");
			}
			System.out.println();
		}

		System.out.println("---------分割线-----------");
		
		//打印菱形
		
		// 上半部图形
		for (int i = 1; i <= 9; i++) {

			for (int j = 9 - i; j > 0; j--) {
				System.out.print(" ");
			}
			System.out.print("*");		//在每一行空格结束的时候来打印*
			for (int k = 2 * (i - 2); k >= 0; k--) {
				System.out.print(" ");
			}
			if (i != 1) {//当没有这个条件的时候你会发现第一行会多出来一个*,所以我们加一个条件去筛选。
				System.out.print("*");
			}

			System.out.println();
		}
		// 下半部图形
		for (int i = 8; i > 0; i--) {
			for (int j = 8 - i; j >= 0; j--) {
				System.out.print(" ");
			}
			System.out.print("*");

			for (int k = 2 * (i - 2); k >= 0; k--) {
				System.out.print(" ");
			}
			if (i != 1) {
				System.out.print("*");
			}
			System.out.println();
		}

		System.out.println("----------分割线----------");

		for (int i = 1; i <= 8; i++) {
			//左边图形
			if (9 - i == 8) {//筛选出当第一行的时候来打印出7个*,不然第一行会多出一个*。
				for (int j = 1; j < 9 - i; j++) {
					System.out.print("*");
				}
			} else {
				for (int j = 9 - i; j > 0; j--) {
					System.out.print("*");
				}
			}
			for (int k = 2 * i - 3; k > 0; k--) {
				System.out.print(" ");
			}
			//右边图形
			for (int j = 9 - i; j > 0; j--) {
				System.out.print("*");

			}
			System.out.println();
		}
	}

来看看在控制台输出的结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值