第30讲第2题
这段代码的执行顺序是怎么样?有点晕。
我的理解是:假设目标文件在某个子目录里,那么需要执行①,然后执行②(调用递归),接着执行③,最后执行④(返回上一级目录)
问题0.我的理解正确吗?第④个语句是在执行完③后执行的吗?
问题1.为什么需要返回上一级呢? 代码执行顺序都是从上到下按顺序的...所以是 3 1 2 4 先 for 循环 每次遍历的内容拿来判断是不是需要查找的文件 即你代码的序号 3中的if
若不是在判断是不是文件夹 即代码中的序号 1
如果是文件夹 那么就进入 if 代码块 执行 2 开始递归递归完成回来后 再运行 4
然后继续for 循环遍历下一个 文件名
Twilight6 发表于 2020-5-28 11:46
代码执行顺序都是从上到下按顺序的...所以是 3 1 2 4
意思是调用递归的时候,执行完3,就不会再去判断第二个if,而是直接执行4? 本帖最后由 heidern0612 于 2020-5-28 11:55 编辑
0、理解的对,4需要在3for循环条件结束后再运行,也就是为空,没找到的时候,才返回上一级。
1、为啥不要返回上一级呢?这一级没找到的话,不返回上一级的同级目录(另外一个文件夹)下查找吗? jump_p 发表于 2020-5-28 11:51
意思是调用递归的时候,执行完3,就不会再去判断第二个if,而是直接执行4?
递归过程都会判断呀 heidern0612 发表于 2020-5-28 11:52
0、理解的对,4需要在3递归条件结束后再运行,也就是为空,没找到的时候,才返回上一级。
1、为啥不要返 ...
你看错了 3 是for 循环 jump_p 发表于 2020-5-28 11:51
意思是调用递归的时候,执行完3,就不会再去判断第二个if,而是直接执行4?
简单来说 每次递归执行的语句都是一样的,只是有的符合第一个if 有的符合第二个if,反正这俩都只能成立一个,你总不能一个 东西 又叫文件又叫文件夹吧哈哈
页:
[1]