C语言中的for循环的镶嵌理解(外层一次,内层一周)
C语言中的for循环的镶嵌理解(外层一次,内层一周)
在这里我们使用两个for循环镶嵌来进行理解,采用的是九九乘法表的代码来理解:
测试一:
#include <stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { printf("%d*%d=%2d ",i,j,i+j); } } return 0; }
输入此代码我们可以发现结果有81种且在DEV C++中以3行27列的形式输出,在条件允许的情况下应当只会在一行中输出。
测试二:
#include <stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { printf("%d*%d=%2d ",i,j,i+j); } printf("\n"); } return 0; }
这次我们在原有的基础上增加了一个换行printf("\n")位于外层循环中与内曾循环的语句并列。在由输出结果(81种9行9列第一行的i都等于1而j则是从1~9)我们可以发现外层循环进行一次内层循环就会在这一次当中完成一次自己的循环,我们将其称为”外一次,内一周“。
思考:
我们测试二可以看出在打印结果中仍有重复的部分如:1X2=2与2X1=2等只是交换了顺序实质上并没有什么区别。
那么我们如何来获取更为精确的九九乘法表呢?
答案是进行一定的条件限制,如“j<=9”改为”j<=i“,这样的话在外层循环为1是只有j=1符合要求以此类推
测试三:
#include <stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%2d ",i,j,i+j); } printf("\n"); } return 0; }
可以看到这一次输出的结果为:
这里直观的看出结果像一个直角三角形且直角在左下角,那么肯定就有人想问是不是还能让他改变形状而并不改变结果啊?答案是肯定的当然方法也有所不同。
这里在测试二的基础上在打印结果之前增加了一个if语句进行输出条件的控制从而达到这个改变的效果。
测试五:
#include <stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { if(j>=i) { printf("%d*%d=%2d ",i,j,i+j); } } printf("\n"); } return 0; }
而这一切都是在掌握测试二和理解测试二的基础上来进行实施的。
当然还能进行其它的改变这里暂时不进行一一的测试需要自己下去进行思考。
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/15657276.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步