鱼C论坛

 找回密码
 立即注册
查看: 1818|回复: 8

[已解决]C语言程序设计中关于for语句循环

[复制链接]
发表于 2020-5-29 11:06:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

void main()
{

        int i, j, k;
        printf("i j k\n");
        for(i = 0; i < 2; i++)
                for(j = 0; j< 2; j++)
                        for(k = 0; k < 2; k++)
                                printf("%d %d %d\n",i, j, k);
}
           能解释一下这些逻辑吗?
最佳答案
2020-5-29 11:58:03

for循环你就想象成简单的循环。

由于这个循环嵌套是由外往里执行的,只有里面的执行完毕了,外面的才会执行。

假设嵌套了3层循环,最外面标注循环1层,中间标注循环2层,里面标注循环3层:

下面的逻辑就类似时钟的时针、分针、秒针了,假设所有for循环都是执行5次。

最里面循环3层循环(秒针)5次了,循环2层(分针)才循环一层;

而循环三层循环了5*5次(秒针),循环2层(分针)才循环5次;循环1层(时针)才循环1次;

也就说,嵌套几层循环,最里面的代码就执行了本身循环次数*循环层数。

大致就是这个道理。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 11:37:05 | 显示全部楼层
这是嵌套循环,最内层的语句执行次数由所有外层循环语句执行次数乘积决定。
把第一个for后面一个for都当成它的一个子语句,然后同样的思维看中间的for,形成一个套娃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 11:40:14 | 显示全部楼层
CodingCat_k 发表于 2020-5-29 11:37
这是嵌套循环,最内层的语句执行次数由所有外层循环语句执行次数乘积决定。
把第一个for后面一个for都当成 ...

还是不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 11:56:18 | 显示全部楼层

单层for循环知道什么意思吧,
嵌套循环就是在for循环里面又有一个for循环;
然后假设最外面的for执行N次循环,它里面的第一个for执行M次循环,
则里面的for循环里面的语句要执行M*N次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 11:58:03 | 显示全部楼层    本楼为最佳答案   

for循环你就想象成简单的循环。

由于这个循环嵌套是由外往里执行的,只有里面的执行完毕了,外面的才会执行。

假设嵌套了3层循环,最外面标注循环1层,中间标注循环2层,里面标注循环3层:

下面的逻辑就类似时钟的时针、分针、秒针了,假设所有for循环都是执行5次。

最里面循环3层循环(秒针)5次了,循环2层(分针)才循环一层;

而循环三层循环了5*5次(秒针),循环2层(分针)才循环5次;循环1层(时针)才循环1次;

也就说,嵌套几层循环,最里面的代码就执行了本身循环次数*循环层数。

大致就是这个道理。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 12:17:47 | 显示全部楼层
heidern0612 发表于 2020-5-29 11:58
for循环你就想象成简单的循环。

由于这个循环嵌套是由外往里执行的,只有里面的执行完毕了,外面的才 ...

还有一点不懂,for嵌套是从里面往外面循环,那从外往执行是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 12:42:42 | 显示全部楼层
峰C 发表于 2020-5-29 12:17
还有一点不懂,for嵌套是从里面往外面循环,那从外往执行是什么意思

里面的执行完了,程序不得退出当前循环么?

那不就接着执行外层的循环了么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 12:51:48 | 显示全部楼层
heidern0612 发表于 2020-5-29 12:42
里面的执行完了,程序不得退出当前循环么?

那不就接着执行外层的循环了么?

已懂,刚刚在脑子里想了一下编译过程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 13:03:21 | 显示全部楼层
峰C 发表于 2020-5-29 12:51
已懂,刚刚在脑子里想了一下编译过程

要是还是不太清楚,可以就先套一层for循环,只有内外层嵌套运行一遍,应该就明白原理了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 14:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表