【Java编程】递归的使用
来源:互联网 发布:淘宝土蜂蜜240一斤贵吗 编辑:程序博客网 时间:2024/06/13 20:51
今天来说一下递归,什么是递归?
其实说白了递归就是一个方法自己调用自己,这就是递归,那么递归怎么使用的,他又有什么优点呢?
递归可以说没有什么优点,要说有把勉强算有一个吧,代码简洁,其他的我还真没想出来递归有什么优点,但是递归的缺点到是不少,执行速度慢,占内存,可以说是效率低下,但是为什么还要用递归的,其实有时递归还是有些用处的。
递归一个不断循环调自方式,递归可以做的事,循环都可以做,递归不可以做的事,循环也能做。
下面给出一个递归学习的经典案例,使用递归计算阶乘。
代码如下:
public class Test {// 使用递归计算阶乘// 定义一个方法public static int recursion(int n){//如果n==1那么直接返回1,,否则就再次调用自己if(n==1){return 1;}else{return n*recursion(n-1);// 每调用一次n就减1}}public static void main(String[] args) {int a=recursion(5);//把返回结果赋值给aSystem.out.println(a);// 打印结果}}
我们来分析一下原理:
首先我们通过了main方法传入了一个值5,5到方法里面就是n。这是第一次调用,然后5!=n我们走到了else里执行了n*recursion(n-1);在此我们又进行了一次调用,这是第二次,因为减1,所以n=4,4!=1继续调用n*recursion(n-1);这又是一次调用,以此类推当n==1时返回1,因为需要返回值,所以前面的方法还在等着,这时返回1,那么上一次调用就是2*1,然后把2*1的值有返回,变成3*2继续返回4*6,在继续返回5*24,所以最终的结果是120
看图:
阅读全文
0 0
- 【Java编程】递归的使用
- Java编程思想13.3-无意识的递归
- 递归:整数划分的java编程实现
- Java递归的使用及注意事项
- JAVA基础—递归的使用
- windows编程使用递归方法遍历文件的方法
- 《编程导论(Java) ·10.3》补充:递归的优化
- 递归在编程中的使用
- java中使用递归
- java 编程数组的使用
- 【Java编程】方法的使用
- 黑马程序员----Java中递归函数的使用及递归程序的缺点
- java File类的使用 通过递归打印文件目录
- 使用递归方式写的走迷宫算法(Java)
- 使用java递归实现文件及文件夹的复制
- leetcode316: Remove Duplicate Letters 使用递归的简单java实现
- Java使用分治递归的思想实现快速排序
- 使用java计算一个数的阶乘--递归
- CentOS(Linux) 设置快捷键打开网页版微信
- BottomNavigationView 的使用
- hdu 2196 Computer dfs / 树形dp
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- thinkphp3.1.2控制器的模块和操作
- 【Java编程】递归的使用
- Vuforia一-VideoPlayback的使用
- Mob短信验证
- 初识Impala
- 快速排序
- 解决Listview通过addHeaderView方式头部添加轮播,轮播失效
- FileInputStream读取properties系统找不到指定的路径
- Linux内核链表
- xml应用rss的使用