Java方法递归调用基本使用

16 篇文章 0 订阅

方法递归调用基本使用

  • 基本介绍

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

  • 递归举例: 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),一层一层返回调用

  • 递归重要规则

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

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

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

    4. 递归必须向退出递归的条件逼近,否则就是无限递归

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

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值