栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java方法递归调用基本使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java方法递归调用基本使用

方法递归调用基本使用

基本介绍

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

递归举例: recursion

打印问题

package chapter7;
public class Recursion01 {
    public static void main(String[] args) {
        T t1 = new T();
        t1.test(4);
    }
}

class T{
    public void test(int n){
        if (n > 2){
            test(n - 1);  //到这发生了递归
        }
        System.out.println("n=" + n);
    }
}

把上面的class T加个 else
class T{
    public void test(int n){
        if (n > 2){
            test(n - 1);
        }else{
            System.out.println("n=" + n);
        }

    }

当n=3时,下面的栈进入到 if 后才会开个栈,就不会进入到 else 里了,所以 3,4就不会被输出了 阶乘问题 factorial

public class R1 {
    public static void main(String[] args) {
        T t1 = new T();
        int res = t1.factorial(5);
        System.out.println("5的阶乘 res" + res);
    }
}

class T{

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

谁调用就返回给哪个,最后return 1返回给factorial(1),factorial(1)x2=2返回给 factorial(2),一层一层返回调用

递归重要规则
    执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会互相影响, 比如n变量 如果方法中使用的是引用类型变量(比如数组, 对象), 就会共享该引用类型的数据 递归必须向退出递归的条件逼近,否则就是无限递归 当一个方法执行完毕, 或者遇到return 就会返回,遵守谁调用,就将结果返回给谁, 同时当方法执行完毕或者返回时, 该方法也就执行完毕
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764040.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号