Heim >Backend-Entwicklung >PHP-Tutorial >递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?

递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?

WBOY
WBOYOriginal
2016-06-06 20:44:291876Durchsuche

递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?

回复内容:

递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?

http://jsfiddle.net/cj6tY/

return 对当前函数来说是结束了,对调用它的父函数来说你这个函数执行完成了,父函数就会接着执行下一语句。
没想到父函数马上又遇到一个return,父函数结束了,对爷爷函数来说父函数执行完成了,爷爷函数就接着执行下一个语句
没想到。。。
没想到。。。

完,回到最初调用递归函数的地方。

递归的四条基本法则:(引自《数据结构与算法分析——C语言描述》Mark Allen Weiss 著)
1. 基准情形。
2. 不断推进。
3. 设计法则。
4. 合成效益法则。
这里结合前面宋小北回答中的例子函数来说明跟题主问题很相关的前两条。

该函数的基准情形就是 num 而 return numfact(num-1); 则是“不断推进”。 return 8fact(8-1); 则需要知道fact(7),要知道fact(7),则需要return 7fact(7-1); 要知道fact(6),则需要return 6fact(6-1); .。。。如此下去,直到遇到“基准情形”。前面hwz的回答中父函数,爷爷函数比喻的很形象。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:linux - php 负载均衡测试Nächster Artikel:怎么实现自定义字段?