资讯专栏INFORMATION COLUMN

01递归概念分类注意事项

tianren124 / 3224人阅读

摘要:递归方法自己调用自己递归的分类递归分为两种,直接递归和间接递归。注意事项递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。


package com.itheima.demo02.Recursion;
/*

递归:方法自己调用自己
- 递归的分类:
  - 递归分为两种,直接递归和间接递归。
  - 直接递归称为方法自身调用自己。
  - 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
- 注意事项:
  - 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
  - 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
  - 构造方法,禁止递归
递归的使用前提:
    当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归

*/
public class Demo01Recurison {

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

/*
    构造方法,禁止递归
        编译报错:构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象,直接编译报错
 */
public Demo01Recurison() {
    //Demo01Recurison();
}

/*
        在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
        11157
            Exception in thread "main" java.lang.StackOverflowError
     */
private static void b(int i) {
    System.out.println(i);
    if(i==20000){
        return; //结束方法
    }
    b(++i);
}

/*
    递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
    Exception in thread "main" java.lang.StackOverflowError
 */
private static void a() {
    System.out.println("a方法!");
    a();
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76039.html

相关文章

  • 第7期 Datawhale 组队学习计划

    马上就要开始啦这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低、中、高三档 可以按照需要参加 - 学习路线 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...

    dinfer 评论0 收藏0
  • 在Python中实现机器学习功能的4种方法

    摘要:在中实现机器学习功能的种方法来源愿码内容编辑愿码连接每个程序员的故事网站愿码愿景打造全学科系统免费课程,助力小白用户初级工程师成本免费系统学习低成本进阶,帮助一线资深工程师成长并利用自身优势创造睡后收入。 在Python中实现机器学习功能的4种方法 showImg(https://segmentfault.com/img/remote/1460000018849605); 来源 | ...

    XFLY 评论0 收藏0
  • Python数据结构——树的基本概念

    摘要:图是构成网页的超文本标记语言中的标签相互关联关系所构成的树。节点节点是树的基本构成部分。子树子树是一个父节点的某个子节点的所有边和后代节点所构成的集合。高度树的高度等于所有节点的层数的最大值。每个子树的根节点和其父树的根节点之间通过边相连。 树的例子 我们已经学过了像栈和队列这样的线性数据结构,同时我们对递归也有了一定的了解,现在让我们来看看另一种常见的数据结构——树(Tree)。树在...

    wapeyang 评论0 收藏0
  • javascript中的递归

    摘要:二项目中用到的几个经典的递归求的和分析假设递归函数已经写好为,即,就是求的和。递归函数实现每天凌晨定时启动定时器执行代码分析假设递归函数已经写好了。 一、递归的概念 在程序中函数直接或者间接调用自身的一种方法,就叫做递归。它通常把一个大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程中所需要的多次重复计算,大大减少了程序的代码了。 二、...

    acrazing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<