zoukankan      html  css  js  c++  java
  • java编程基础--方法的递归

    方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。

     1 public class Example {
     2     public static void main(String[] args) {
     3        int sum = getSum(4);
     4         System.out.println("sum =" +sum);
     5     }
     6         //下面的方法使用递归实现求1 ~ n的和
     7       public static int getSum(int n){
     8         //满足条件,递归结束
     9         if (n ==1){
    10             return 1;
    11         }
    12         int temp = getSum(n -1);
    13         return  temp + n;
    14       }
    15       
    16 }

    运行结果:

      第12行代码相当于在gerSum()方法的内部调用了自身,这就是方法的递归,整个递归过程在n==1时结束。方法的递归调用过程很复杂,通过下图来分析整个调用过程--

     

      整个递归过程中getSum()方法被调用了4次,每次调用时,n的值都会递减。当n的值为1时,所有递归调用的方法都会以相反的的顺序相继结束,所有的返回值都会进行累加,最终得到结果10

    (通俗的讲,当第四次递归结束时,返回值为1,再往上第三次递归return temp + 2实际上就等于1+2,return 3,以此类推,得出最终结果10)

    关于递归,理解起来有点不容易,可以自行百度了解

  • 相关阅读:
    施密特触发器
    51单片机独立键盘原理
    51单片机独立键盘原理
    hdu3085 Nightmare Ⅱ
    hdu3085 Nightmare Ⅱ
    复制一颗二叉树
    复制一颗二叉树
    判断一颗二叉树是不是完全二叉树
    判断一颗二叉树是不是完全二叉树
    求二叉树的深度及每一个节点的深度
  • 原文地址:https://www.cnblogs.com/wx60079/p/13191903.html
Copyright © 2011-2022 走看看