一.递归的理解
递归,从字面意思来看,是传递过去之后再传递回来。
一般来说,递归就是自己调用自己,例如我在书中看到“再看一遍书”的信息,接着,又进入看书的状态了,那就会无限递归,就是反复地去看。
那我们什么时候可以结束递归,按照看书的例子来说,是不是自己看到印象深刻的时候,就可以停止了。所以,我们只要设置一个相应的条件,就不会出现无限递归的现象了。
一般无限递归是这样的,虽然有返回语句,但是递归的思想是自己调用自己,相当于在同一地方转圈。如果不设置条件的话,就会一直待在同一个地方,也就是没有返回结果的现象。
最经典的就是什么都没有,因为卡在一个地方,所以程序无法返回出结果了。
最重要的是在实践中学习递归的精髓…
二.代码演练
通过条件的设置,可以利用递归返回自己想要看到的结果。
1.会变魔术的数字
#include<iostream>
using namespace std;
//2.弄清递归原理即可
int com(int x){
//x的值为2
x--; //x的值变为1
if(x==1){
//x为1 走这一分支
return com(x); //利用递归再次调用自己 ,将参数1传入 ,传入之后,因为x--,所以x变为0
}
else{
//x为0走这一分支
return x; //因此,函数最终返回了0,即打印了0
}
}
int main(){
cout<<com(2); //1.将实参2传给形参