概述
“非知之难,行之为难;非行之难,终之斯难”。
——《贞观政要·卷十·论慎终》
????导语:
嵌套循环,就是循环的嵌套,如果在一个循环体中出现另一个循环的结构,则称之为嵌套循环,也叫做多重循环。这篇文章,就带我们开始学习嵌套循环,因为本小白也是刚刚学习,可能下文会出现措辞不当的情况,敬请各位指正,届时,本人将作出修改,谢谢各位啦。前进路上我们并肩前行。
????引入:
首先我们看一组简单的嵌套循环示例;
#include <stdio.h>
int main()
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d,%dn",i,j);
}
printf("******n");
}
return 0;
}
对于这串代码我们可以做出如下剖析????
红色框出的为外循环,它的大括号括起来的是它的循环体;相同的,绿色的为内循环,它的大括号包括的是它的循环体。在分析这样的循环的执行流程时,我们可以首先把它的外循环的循环体看成一个整体,只有也就是变成了单个循环,之后将外循环展开,然后在逐步展开内层循环。
这样,我们就完成了第一步,将外层循环展开了,下面就开始展开内层的循环,方法与外循环大差不差。????
所以,我们的代码也就显而易见了,只需要拼凑内外循环就可以了。????
????例题:
知道了方法,我们现在就来做一个我们从小就知道的九九乘法表,那么我们究竟该如何去写呢?????????????
思路:
1.九九乘法表有九行,每n行就有n个式子;
2.一次想打出整个有些困难,我们可以先想一个式子,然后扩展到一行式子,最后扩展到整个九九乘法表。
我们就以第九行为例,先打出第一个式子;
#include <stdio.h>
int main(){
int i,j;
i=9;//行号
j=1;//列号
printf("%d*%d=%dn",i,j,i*j);
return 0;
}
如果按照这样一个一个打出来,肯定很费时间,而且可能会产生错误,所以,我们再将这个式子扩展到一行,所以产生如下代码。
#include <stdio.h>
int main(){
int i,j;
for(i=9,j=1;j<10;j++)
printf("%d*%d=%dt",i,j,i*j);
printf("n");
return 0;
}
其中的t在之前也有提到,为水平制表符(即Tab键),功能是使光标跳动下一个水平制表位,水平制表位通常位于第8k+1个字符的位置(k为自然数),就像下面这个小图所示,各位不明白的可以自己去试一试,会很明确。
所以,由以上,在加上行数的循环,我们就可以打出所有式子。????
#include <stdio.h>
int main(){
int i,j;
for(i=1;i<10;i++){
for(j=1;j<10;j++){
printf("%d*%d=%dt",i,j,i*j);
}
printf("n");
}
return 0;
}
运行后我们会发现,运行结果并不像我们所期望的那样的三角形,而是产生如下结果的矩形。
为什么会出现这样的结果呢,因为外循环与内循环都会产生9个值,第几行也就是行数是由外循环的循环次数所决定,每行的所产生的个数则是内循环的循环次数所决定的,所以会产生九行九列的式子。
然后我们可以思考九九乘法表,第一行有一个式子,第二行有两个式子,以此类推,每一行都有与其行数相等的式子,所以我们只需要让内循环的循环次数去跟随外循环的即可,所以产生如下代码。
#include <stdio.h>
int main(){
int i,j;
for(i=1;i<10;i++){
for(j=1;j<=i;j++){
printf("%d*%d=%dt",i,j,i*j);
}
printf("n");
}
return 0;
}
这就是最终的,九九乘法表的代码啦!????展示一下运行后的结果????
结语:
本篇文章就讲到这里,因为最近要考试,所以也只能这样啦,本文如有错误,烦请评论区指正,感谢阅读到此的诸位,我们一起继续加油啊!
最后
以上就是明亮星星为你收集整理的嵌套循环的简单应用????导语:????引入: ????例题: 结语:的全部内容,希望文章能够帮你解决嵌套循环的简单应用????导语:????引入: ????例题: 结语:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复