首页 课程 师资 教程 报名

Java递归的意义以及用法

  • 2019-11-11 16:10:10
  • 2494次 动力节点



  程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法在程序设计语言中广泛应用。但是如果没终止条件会造成死循环,所以递归代码里要有结束自调自的条件。接下来通过一个案例来学习如何使用递归算法计算自然数之和,如例Example1.java。


timg.jpg


  publicclassExample1{


  publicstaticvoidmain(String[]args){


  intsum=getsum(4);//调用递归方法,获得1~4的和


  System.out.println("sum="+sum);//打印结果


  }


  //下面的方法使用递归实现求1~n的和


  publicstaticintgetsum(intn){


  if(n==1){


  //满足条件,递归结束


  return1;


  }


  inttemp=getSum(n-1);


  returntemp+n;


  }


  }


  运行结果为:


  sun=10


  Example1.java中,定义了一个getSum()方法用于计算1~n之间自然数之和。例程中的12行代码相当于在getSum()方法的内部调用了自身,这就是方法的递归,整个递归过在n==1时结束。整个递归过程中getsum()方法被调用了4次,每次调用时,n的值都会递减。当n的值为1时,所有递归调用的方法都会以相反的顺序相继结束,所有的返回值会进行累加,最终得到结果10。


  使用递归时需要注意的问题。


  【1】递归就是方法里调用自身。


  【2】在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。


  【3】递归算法代码显得很简洁,但递归算法解题的运行效率较低。所以不提倡用递归设计程序。


  【4】在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。


  【5】在做递归算法的时候,一定把握出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口就是一个条件,当满足了这个条件的时候我们就不再递归了。


  以上就是动力节点Java培训机构小编介绍的“Java递归的意义以及用法”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


零基础自学java教程推荐


最新java视频教程免费下载(从入门到精通):http://www.bjpowernode.com/video.html


零基础java自学教程http://www.bjpowernode.com/tutorial_java_se/


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交