Java—面向对象——方法递归调用

Java—面向对象——方法递归调用,第1张

Java—面向对象——方法递归调用

目录

一、递归重要规则


基本介绍         

简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂问题,同时可以让代码变得简洁

案例:1.打印 2.阶乘

public class Recursion01{
	public static void main(String[] args){
		//打印
		T t1 = new T();
		t1.test(4);

		//阶乘
		t1.factorial(5);
		int res = t1.factorial(5);
		System.out.println("阶乘res=" + res);

	}
}

class T{
	public void test(int n){
		if(n > 2){
			test(n - 1);
		}
		System.out.println("n=" + n);
	}


	//factorial 阶乘
	public int factorial(int n){
		if(n == 1){
			return 1;
		}else{
			return factorial(n - 1) * n;
		}
	}
}

1.打印问题示意图

2.阶乘问题示意图

一、递归重要规则

        1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)

        2.方法的局部变量是独立的,不会相互影响,比如n变量

        3.如果方法中使用的是引用类型变量(数组,对象) ,就会共享该引用类型的数据

        4.递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError(死龟了)

        5.当一个方法执行完毕,或者遇到return时,就会返回,遵循谁调用,就将结果返回给谁,同时当方法执行完毕或返回时,该方法也就执行完毕

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5722122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存