• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 Java递归函数详解附案例

发布时间:2020-02-06 17:21:23 浏览 6402 来源:博学谷 作者:照照

    递归函数在Java语言中得到了广泛的应用,它使得程序的编写过程更加的清晰明了。对Java初学者来讲,递归函数是需要学习的一个重要知识点。本文将附上案例和演示代码,具体为大家介绍递归函数的概念、要素以及和循环的区别。想要学习递归函数的小伙伴,赶紧一起来梳理下相关的知识点吧!

     

    Java递归函数

     

    1、递归函数的概念

     

    递归是一种针对使用简单的循环难以编程实现的问題,提供优雅解决方案的技术。简单来说,递归方法是调用自身的方法。在编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。

     

    2、实现递归的三要素

     

    (1)一定有一种可以退出程序的情况;

     

    (2)总是在尝试将一个问题化简到更小的规模;

     

    (3)父问题与子问题不能有重叠的部分。

     

    3、Java递归算法案例

     

    Java中的递归函数如果没终止条件会造成死循环,所以递归代码里要有结束自调自的条件。接下来通过一个案例来学习如何使用递归算法。

     

    package QianFeng03;

     

    //阶乘(递归算法)

     

    public class FactorialTest {

       

    public static void main(String[] args){

           

    int result = factor1( 10);

           

    System.out.println(result);

           

    int result1 = factor(10);

           

    System.out.println("递归算法:内存消耗大容易内存溢出"+result1);

       

    }

       

    //---------------递归算法,方法本身调用自己----------------------

       

    public static int factor(int num){

           

    if (num==1)

               

    return 1;

           

    return num*factor(num-1);

       

    }

     

     //---------------普通计算----------------------

     

    public static int factor1(int num){

           

    int result = num;

           

    int i= num-1;

           

    do{

               

    result = result*i;

               

    i--;

           

    }while (i>1);

           

    return result;

       

    }

     

    }

    4、递归函数与循环的关系:

     

    (1)联系:

     

    都是通过控制一个变量的边界(或者多个),来改变多个变量为了得到所需要的值,而反复而执行的;都是按照预先设计好的推断实现某一个值求取;(请注意,在这里循环要更注重过程,而递归偏结果一点)

     

    (2)区别:

     

    递归通常是逆向思维居多,不一定容易发现;而循环从开始条件到结束条件,包括中间循环变量,都需要表达出来。简单的来说就是:用循环能实现的,递归一般可以实现,但是能用递归实现的,循环不一定能。因为有些题目①只注重循环的结束条件和循环过程,而往往这个结束条件不易表达;②只注重循环的次数而不注重循环的开始条件和结束条件。

     

    关于Java递归函数以及案例详解就讲到这里了,希望对刚刚入门学习Java的初学者能够有一定的帮助。关于更多的Java基础学习的内容,尽在博学谷在线IT培训平台!

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: 重庆Java培训机构哪个好? 下一篇: Java在线教程视频哪里有?都学什么内容?

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码