请教大家一下递归的问题?
scratch吧
全部回复
仅看楼主
level 1
书h呆h熊
楼主
2022年07月04日 14点07分
1
level 1
书h呆h熊
楼主
后面的这部分,为什么不会受到前面的如果那么影响,递归不是也应该按顺序执行吗?先执行fb(n-2)。
2022年07月04日 14点07分
2
(o.0)
@书h呆h熊
是的
2022年07月06日 02点07分
(o.0)
后面是单独执行的,你的自定义模块中fb(n-2)停止,fb(n-1)不受影响仍会执行一次,你可以理解成是和克隆体的方式类似(不影响本体)
2022年07月05日 10点07分
书h呆h熊
@(o.0)
谢谢解答!是不是可以理解就是停止的是fb(1)或是fb(2)的脚本,不是停止的fb(n)。fb(1)和fb(2)就类似克隆体了?
2022年07月05日 14点07分
吧务
level 15
遧傂鼝
你执行fb(n=3)的时候,先执行了fb(n-2),此时在fb(n-2)里判断n=1,结果增加1,fb(n-2)这个脚本停止了,不就应该继续执行底下的fb(n-1)么
停止这个脚本是把你当前一层的新建函数给停止了,不是把最上面一层停止。否则你也看不到说出结果的效果了
2022年07月05日 01点07分
3
书h呆h熊
谢谢解答!是不是可以理解就是停止的是fb(1)或是fb(2)的脚本,不是停止的fb(n)。
2022年07月05日 14点07分
遧傂鼝
@书h呆h熊
fb(3)执行时,先判断n是否等于1或2,结果返回否,于是继续执行底下的fb(n-1)即fb(2),此时fb(3)还在执行中。fb(n-1)执行时,调用定义,先判断n-1是否等于1或2,结果返回是,于是停止当前脚本。回到fb(3)中,fb(n-1)执行完毕,继续执行f
2022年07月05日 15点07分
遧傂鼝
@书h呆h熊
b(n-2)即fb(1),调用定义,先判断n-2是否等于1或2,结果返回是,于是停止当前脚本,回到fb(3)中,全部执行完毕,输出2
2022年07月05日 15点07分
书h呆h熊
@遧傂鼝
谢谢再次细致的分析!感觉更透彻了!
2022年07月08日 15点07分
level 12
事气功豆不是寄功豆
如图,主函数递归后进入分支脚本,分之脚本中的【停止【这个脚本】】模块仅仅停止了分支脚本的运行,对主线脚本并不造成影响。
2022年07月05日 01点07分
4
书h呆h熊
谢谢!就是停止只是停止的积木名称(1)或是积木名称(2),对于积木名称()这个主函数不影响。
2022年07月05日 14点07分
1