首页 > 编程语言 > 详细

【JAVA SE基础篇】17.递归的讲解

时间:2020-06-11 09:29:38      阅读:46      评论:0      收藏:0      [点我收藏+]

递归时一种很常见的方法,把问题简单化。

递归的本质就是:自己调用自己。

 

例1:

public static void main(String[] args) {
a();
}

static void a(){
System.out.println("a");
a();
}

最后输出会无限循环输出a,然后报错,陷入死循环,所以这不是递归。

 

递归结构包括递归头和递归体

递归头:结束自身方法的条件,或者说是结束递归的条件

递归体:什么时候需要调用自己

 

对例1进行更改,为其加入递归头和递归体

例二:

public static void main(String[] args) {
  a();
}

static int count=0;
static void a(){
  System.out.println("a");
  count++;
  if(count<10){//递归体
    a();
  }else
    return;//递归头,这个return不是返回值,而实结束方法
}

最后输出10个a

 

例3:

阶乘 计算5!

技术分享图片

 

 

递归会使程序编写变的简单,但是同时却会占用大量的系统堆栈,内存耗用大,使用递归时,速度没有循环快、

一般递归都是可以用循环来代替。

【JAVA SE基础篇】17.递归的讲解

原文:https://www.cnblogs.com/chengkuan/p/12874611.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!