java基础,递归调用的初学总结
来源:互联网 发布:理科生 禅师 知乎 编辑:程序博客网 时间:2024/06/07 00:39
这学期开始了java的学习,在学到递归调用时,有了很大的感触。以下是一个例子以及个人理解。
我个人的理解,递归调用就是把对一个整体的引用(这里解释不太好)或者是拿过来反复利用(???自己糊弄自己的牵强解释)
举个栗子:
public static void main(String[] args){
System.out.println(method1(5));
}
public static int method1(int n){
return n;
}
输出的结果就是5.
分析一下,就是在main函数中,它先执行System.out.println(method(5)); 结果发现method1(5)没法直接输出。就需要执行method1(n)。所以,我个人主观认为,就是把下面的method1(n)拿过来用。
(感觉例子不是很清晰)
下面用递归调用完成从1依次加到7的累加计算,代码如下:
/*递归调用,计算1到n的值*/
public class DiGui{
public static void main(String[] args){ //很正式的开头
int n=7; //很一般的定义
int sum=method1(n); //这里比较重要,把算出的和用sum表示,用method1(n)赋值
System.out.println(sum); //输出sum 表示1到n的和
}
public static int method1(int n){ //这里弄了个新花里胡哨
if(n==1){ //如果进来的n等于1,就直接返回一个1,如果不是1,就走到了万恶的else 返回n并且加上method1(n-1)
return 1; //如果是这样,那就是相当于再次走进了method1(n)方法,只不过这次的n值比上次少了个1.
} //显然我们要再折磨一下这个method1(n),发现n-1还是不等于1,那就再返回n值,但此时的n值比上次少个1
else { //就是n-1,n-1再加method1(n-1)。现在相当于第一次5+4+(4-1)。一直反复折腾到n等于1。n等于1了,就很灵性了,
return n+ method1(n-1); //返回1,并且不需要加method1(n-1)了。那么 整个过程下来就是,5+4+3+2+1=15赋给了sum。 然后终于可以执行
} //System.out.println(sum);了*/
}
}
那么按照这个方法,就可以计算1到n的阶乘了。代码如下:
/*用递归调用计算n的阶乘*/
public class DiGuiJieCheng{
public static void main(String[] args){
System.out.println(method1(5));
}
public static int method1(int n){
if(n==1){
return 1;
}else{
return n * method1(n-1);
}
}
}
上面计算的是1到5的阶乘,运行结果无误。
总体来说,如果用递归调用的方法计算以上内容,比运用for循环的代码量少一些,至于它还有什么更大的作用,目前初学的我还没发现,以后发现了再做详细的书写。
整个过程,其实一直在做一件事,就是需要的函数就整个来执行,整个整个的用。(大概是这样,还是解释的牵强)
附上一张图,结合着“栈”的数据结构,一并解释一下从1依次加到7的过程。
- java基础,递归调用的初学总结
- 初学Java的感受及基础总结
- java基础—初学总结
- java基础之递归调用
- c语言初学---函数的嵌套调用 递归调用
- java的递归调用
- 初学java的小总结
- java 递归的总结
- JAVA IO的递归调用
- java 方法的递归调用
- Java基础-20总结,递归,IO流
- Bootstrap初学基础总结
- java基础学习总结——多个类之间的调用
- 初学java遇到的基础问题
- 基础入门:JAVA初学的一些技巧
- 基础入门:JAVA初学的一些技巧
- 初学java对知识点的总结
- 递归调用总结
- 记一次空指针异常
- C++第三次上机实验-个人所得税计算器
- Bootstrap 支持的JavaScript插件
- 十四、switch中可以传递的参数类型(Only convertible int values or enum constants are permitted)
- LeetCode算法题——15. 3Sum
- java基础,递归调用的初学总结
- 树莓派Raspberry Pi实战之命令行下实现USB存储设备自动挂载
- 远程连接Ubuntu14.04上的Mysql数据库
- 盒子模型-笔记
- 最简单的cmd批处理入门实例
- linux下find命令的应用
- mysql和workbench的安装、创建实例、用户
- 身份证号码验证算法
- 用户管理系统