概述
/*
* 递归:方法自已调用自己
* 递归的分类:2种
* 1.直接递归称为方法自身调用自己
* 2.间接递归可以使用A方法调用B方法,B方法调用C方法,C方法再调用A方法
* 注意事项:
* 1.递归一定要有条件限定,保证能停止下来,否则会发生栈内存溢出
* 2.在递归虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出
* 2.构造方法,禁止递归
* 学习视频分享:javacto.taobao.com
*/
递归:方法自已调用自己 案例
public class Test01 {
public static void main(String[] args) {
//a();
b(1);
}
/**
* 在递归中虽然有限定条件,但是递归次数不能太多,否同也会发生栈内存溢出
* 11738
每次不一样
* 学习视频分享:javacto.taobao.com
* @param i
*/
private static void b(int i) {
System.out.println(i);
if(i==200000){
return ;
}
b(++i);
}
/**
* 递归一定要有条件限定,保证能够停止下来,否则会发生
* Exception in thread "main" java.lang.StackOverflowError
* 学习视频分享:javacto.taobao.com
*/
private static void a() {
System.out.println("a方法");
a();
}
/**
* 构造方法禁止递归
*
编译错误,构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象
*
学习视频分享:javacto.taobao.com
*/
public Test01(){
//Test01();
}
}
练习:使用递归计算1-n之间的和
/**
* 练习:
* 使用递归计算1-n之间的和
*/
public class Test02 {
public static void main(String[] args) {
int s = sum(100);
System.out.println(s);
}
/**
* 定义一个方法,使用递归计算1-n之间的和
*
1+2+3+..n
*
n+(n-1) +(n-1)+..1;
*
已知 最大值n
最小值1
*
使用递归必需明确
*
1.递归的结束条件
获取到1的时候结束
*
2.递归的目标
获取下一个被加的数字(n-1)
*
*
学习视频分享:javacto.taobao.com
*/
private static int sum(int n) {
//获取到1的时候
if(n==1){
return 1;
}
//获取下一个被加的数字 (n-1)
return n+sum(n-1);
}
}
最后
以上就是舒服大碗为你收集整理的什么是递归调用-自已调自己 什么是递归算法的全部内容,希望文章能够帮你解决什么是递归调用-自已调自己 什么是递归算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复