递归 --- C语言
1、前言
首先想和大家说的是,我也是一个初学者,这是我写的第二篇博客,也是针对和我一样正在学基础的猿(媛)友,我是一个从.Net想转iOS的小生,对于大家
来 说,我也许学着会比大家简单许多, 但是在后面其实也是一个小白了啦,我希望大家不要放弃自己的选择,坚持下去,加油 在这条道上一起奔跑吧 。
:star:️ 什么叫递归 ???
一个函数在它的函数体内调用它自身称为递归调用 其实通俗点 就是自己搞自己 (见到HR千万不要这么说啊----不然他 (她) 来一句你搞试试,你就死定了!!! :joy::joy::joy: )
(其实这也是我一个非常淫荡凶残的小白哥哥说的 :grin::grin::grin:)
:star:️ 补充:递归其实也是一种循环 (一种奇葩的循环,自己搞自己嘛,你们懂的 :smile::smile::smile:)
2、旅程开始
1、构建成递归的条件
~、必须要有一个自己调用自己的前提 (不然就没有意义了)
~、进行递归必须首先知道它的跳出条件 (不然就是死循环)
~、必须找到规律
2、案例
No1、 获取用户输入的数字, 直到用户输入一个正数为止
1、从这段字我们可以看到 上述构建成递归的条件吧
第一、输入正数为止,那么意思就是说无限制的循环,只要输入到正数那么就结束该程序 对吧 (这里我们可以看到 自己调用自己吧);
第二、输出整数为止(这是一个条件吧)
2、来吧,我们第一步是不是要创建一个函数呢 那么我们取名去GetNumber()
1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number 给它初始化并赋值为-1 4 int number = -1; 5 //提示用户输入并接受用户输入的值 6 printf("请输入一个正数,其它数忽略不计/n"); 7 scanf("%d", &number); 8 9 }
1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number 给它初始化并赋值为-1 4 int number = -1; 5 //提示用户输入并接受用户输入的值 6 printf("请输入一个正数,其它数忽略不计/n"); 7 scanf("%d", &number); 8 9 } View Code
3、函数写好了 那我们是不是需要有一个跳出循环的条件呢 (也就是不执行递归的条件)
1 //如果输入的number小于0那证明用户是输入的负数吧 那就得再次输入 2 //那么就得在调用一次自己吧 3 if (number < 0) { 4 // 负数 5 GetNumber(); 6 }else{ 7 // 正数 8 printf("number = %d/n", number); 9 }
4、其实我们的第三步就是,我们的核心,那么核心都完事了。程序当然就完事了啊,那么我们来看看GetNumber()函数所有的代码吧
1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number 给它初始化并赋值为-1 4 int number = -1; 5 //提示用户输入并接受用户输入的值 6 printf("请输入一个正数,其它数忽略不计/n"); 7 scanf("%d", &number); 8 //如果输入的number小于0那证明用户是输入的负数吧 那就得再次输入 9 //那么就得在调用一次自己吧 10 if (number < 0) { 11 // 负数 12 GetNumber(); 13 }else{ 14 // 正数 15 printf("number = %d/n", number); 16 } 17 18 }
1 void GetNumber() 2 { 3 //声明一个用来接受用户输入值的变量number 给它初始化并赋值为-1 4 int number = -1; 5 //提示用户输入并接受用户输入的值 6 printf("请输入一个正数,其它数忽略不计/n"); 7 scanf("%d", &number); 8 //如果输入的number小于0那证明用户是输入的负数吧 那就得再次输入 9 //那么就得在调用一次自己吧 10 if (number < 0) { 11 // 负数 12 GetNumber(); 13 }else{ 14 // 正数 15 printf("number = %d/n", number); 16 } 17 18 } View Code
5、写完我们的代码后我们开始执行吧
1 #include <stdio.h> 2 3 void GetNumber(); 4 int main() 5 { 6 //开始调用方法 如果是写一个 7 GetNumber(); 8 return 0; 9 }
以上所述部分都是属于刚刚接受递归 以及很初级 并且很晕乎的朋友
欢迎大家的转载!!!!!!! :grin::grin::grin: