第七章 函数(7)递归

作者: 阿厉a_li | 来源:发表于2019-12-19 18:18 被阅读0次

(七)递归

1.什么是递归

    c++的函数可以调用自己(main主函数不允许),这种实现方式被称为递归(也就是自己调用自己,直到到达退出条件)。递归在特定的编程(比如人工智能)中是重要的工具。

2.递归调用的工作流程:

    如果函数调用自己,那么调用的函数也会调用自己,这样会无限循环下去,为了能够跳出循环,一般我们在递归调用中设置if语句来进行递归判断,也就是将递归调用放在if语句当中,如果if的判断语句为true,那么会继续调用自己,则在if语句上面的statement1语句都会被执行,而if语句后面的statement2语句不会执行。直到if语句判断为false,那么if后面的语句statement2才会执行,后返回上一层函数,继续执行上一层函数的statement2,最终一步步到达第一个调用的函数中。递归调用每一次都会创建新的变量,虽然同名,但是是不相同的。

3.包含多个递归调用的递归

    可以在函数开头就说明调用的跳出方式,比如设置调用层数,或者说是递归层次,当层数到达某个值的时候就跳出调用。跳出可以直接使用return语句:return;这种层次的设置可以使用函数的形参,然后调用自身的时候将形参加1或减1来传递给下一层的调用,这样下一层调用的形参与上一层的形参将会有相同的名称,但是值是差1的,是同名的作用域不同的变量,因此形参会一层层变化,直到到达指定的层数之后便会跳出递归,从而实现一步步返回主函数的功能。

    函数的递归调用和普通的函数调用并没有本质的区别,区别只是自己调用自己和需要设置跳出递归的if语句罢了。

    包含多个递归调用的时候,调用的次数将会呈现指数增长,因此,如果调用的层数过多,则不适合用递归调用。而如果调用的层数比较少的时候,这种程序将是一种精巧的实现方式。

相关文章

  • 第七章 函数(7)递归

    (七)递归 1.什么是递归 c++的函数可以调用自己(main主函数不允许),这种实现方式被称为递归(也就是自己调...

  • 《JavaScript高级程序设计》之笔记五

    第七章 函数表达式 1. 定义函数的两种方法 : 2. 递归 : 递归函数是在一个函数通过名字调用自身的情况下构成...

  • 第七章 函数表达式

    第七章 函数表达式 问答 1. 函数声明的语法是? 2. 函数表达式(匿名函数)的语法是? 3. 以下递归语句是否...

  • Day10递归函数、模块、迭代器、生成器

    一、递归函数 1、什么是递归函数 在函数中调用函数本身的函数就是递归函数。 2、递归的作用 循环能做的递归都能做 ...

  • day11 函数(3)

    递归函数 实际开发的时候,能不用递归就不用 什么是递归函数 函数中调用函数本身的函数就是递归函数 递归的作用: 循...

  • python 递归函数

    递归函数 递归函数 : 在函数的调用自身 递归边界 : 退出递归的终止条件 例1,函数func如果没有设备递归边界...

  • day11-日常(递归函数、模块、迭代器、生成器)

    递归函数(实际开发的时候,能不用递归就不用) 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归的...

  • 2019-01-07day11学习总结

    递归函数 实际开发的时候能不用递归就不用递归 1. 什么是递归函数 函数中调用函数本身的函数就是递归函数 2. 递...

  • 递归函数、模块、生成器、迭代器

    一、递归函数 实际开发的时候,能不用递归就不用 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归...

  • javascript高级程序设计(第7章) -- 函数表达式

    第七章:函数表达式 本章内容: 函数表达式的特征 使用函数实现递归 使用闭包定义私有变量 定义函数的方式有两种,一...

网友评论

    本文标题:第七章 函数(7)递归

    本文链接:https://www.haomeiwen.com/subject/bqzugctx.html