递归
来源:互联网 发布:php吧 编辑:程序博客网 时间:2024/06/08 12:17
c++函数有一种有趣的特点——可以自己调用自己,称为递归。
* 包含一个递归调用的递归
如果递归函数调用自己,那么被调用的函数也将调用自己,这将导致无限死循环,除非代码中包含终止调用链的程序。通常是将递归放在if语句中。格式:
void recurs(argumentList){ statements1; if(test) { recurs(arguement); } statements2;}
递归调用:只要if语句为true,则每个recurs()调用都将执行statements1,然后再调用recurs(),而不会执行statements2。当if语句为false,当前调用将执行statements2。当前调用结束后,程序控制权将返回给调用它的recurs(),而该recurs()将继续调用其下面将要执行的statements2部分代码,然后结束,继续再上一级调用,以此类推。
程序示例:
#include <iostream>using namespace std;void countdown(int n);int main(){ int i=5; countdown(5); cout<<"Done.\n"; return 0;}void countdown(int n){ cout<<"countdown: "<<n<<endl; if (n>0) { countdown(n-1); } cout<<n<<" Kaboom!"<<endl;}
输出结果:
阅读全文
0 0
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- Android Binder学习笔记
- web异常解决
- maven 上传源代码包到私服命令
- AFNetworking 返回值null 类型 设置
- Fragment 与DialogFragment 相互之间传递数据
- 递归
- Event ID 1096 — Group Policy
- markdown技巧
- echarts 取消图例上的点击事件和图表上鼠标滑过点击事件
- HttpUrlConnection与HttpClient的认识(四) -HttpClient的封装
- 【Junit】The import org.junit.Test conflicts with a type defined in the same file报错
- [IOS APP]西藏生死书
- 学习资料
- Could not find result map 错误