for循环递减_C++ 循环:方阵队列,内外层叠

这篇博客通过四个逐步进阶的示例介绍了C++双层循环的使用,从打印直角三角形到右对齐三角形,再到九九乘法口诀表。每一步都揭示了循环控制与行号之间的规律,鼓励读者通过实践发现并掌握这些规律。双层while循环也被提出作为另一种实现方式,激发读者深入理解循环结构。
摘要由CSDN通过智能技术生成

8.C++双层循环

453c5fdaeecf6a887ec2b092acfc8051.png

8.1 双层 for 循环

掌握了for循环或while循环之后,如果让你打印N个 ' * ' ,相信你很快就能完成任务。下面我们做一个更具有挑战性的任务。

1.打印下面由'*'构成的直角三角形。

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

观察上面的直角三角形你会发现:图案一共有5行,其中第1行有1颗星,第2行有2颗星,第3行有3颗星,第4行有4颗星,第5行有5颗星。

不知道你发现没有,每一行星星的数量与这一行的行号之间有个规律...

数量与行号是相同的!

找到这个规律又该如何打印出这个图案呢?

下图是一个双层for循环的嵌套写法,一共用到2个循环结构,每个for循环的作用都不一样:外层for循环控制要打印的行号,内层for循环控制每一行打印星星的数量。每一行打印结束之后必须要换行。这个写法中的关键之处在于内层for循环中的判断条件:j<=i。 这个表达式控制了每一行的星星数量。

40000e9f09e8ff8d99822418db1c561e.png

2.如果你已经完成了上面这个任务可以再来试试下面这个,打印下面这个图案,这次每一行星星的数量是逐行递减的。

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

上面的三角形中隐藏的规律你是否发现了呢?可以先动手验证一下你的想法是否正确。

下图中我们只是在内层的for循环中做了一些改变,首先 j 的初始值由0变为5,判断条件也相应的发生了变化,最后让 j 每一行递减1来控制每一行星星的数量。

2aa51c61ea5e48ece00b826a3d38e1d0.png

怎么样,这个任务没难住你吧?

3.下面再提高一些难度挑战一下自己,三角形图案变成了右对齐:

ae64f3f86dc2f3bd506e991eb7e1350c.png

要想完成这个任务,需要换个思路,我们可以把每一行看成是几个空白字符+几个星星组成的。比如第一行是4个空格+1颗星星,第二行是3个空格+2颗星星...,我们只需要通过循环去控制空白字符的数量和星星的数量就可以了。我们可以分别用一个for循环打印空白字符,用另一个for循环打印星星。

99125031c6ec053a5a177c6e4d0b213e.png

4.最后我们来做一个有趣的任务,打印九九乘法口诀表:

d5dca18107197cc611e097832b37c915.png

首先观察乘法口诀表找到其中的规律:1.每一行中乘号左边的数字依次递增,但始终小于乘号右边的数字。2.每一行乘号右边的数字不变,并且等于每一行的行号。

只要理解并掌握这个规律你就可以轻松完成这个任务了:

4c96e02cfd4230dd814228e9dd70ddf2.png

一次没有完成也没关系,多动手练习相信你就可以发现其中的规律并掌握它。

8.2 双层 while 循环

上面的4道例题,也可以用双层while循环来完成,怎么样有没有兴趣试一下?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值