方法的递归调用 | 学习笔记

简介: 快速学习方法的递归调用

开发者学堂课程【Java编程入门方法的递归调用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/18


方法的递归调用


内容简介:

1. 方法的递归调用

2. 方法的递归调用的注意问题

1. 方法的递归调用

方法的递归调用指的是一个方法自己调用自己的情况,利用递归调用可以解决一些重复且麻烦的问题,那么在进行方法递归调用的时候,一般需要考虑以下几点问题。


2. 方法的递归调用的注意问题

第一点,一定要设置方法递归调用的结束条件;

第二点,每一次调用的过程之中一定要修改传递的参数条件。

范例:实现一个1~100的累加,这个过程实际上曾经使用过while语句来完成,代码如下:

image.png

其运行结果如下:

image.png

而这个程序代码也是可以通过递归的形式是来实现的,如果是递归,那就有可能实现1~100,有可能实现1~200,甚至可能实现1~500。就是说可能实现无数的数据的累加,那么其代码如下:

image.png

其执行结果如下:

image.png

其中num==1是设的一个结束条件,如果num==1的时候,就不累加,直接return 1就结束了。下面对此代码进行一些简单的分析处理:比如sum方法,sum这个方法一定是由两个地方发起作用,一个是主方法,一个是sum自己,所以

第1次执行sum(),主方法执行,主方法执行的过程中return的作用就是主方法如果传100过来,不会执行,因为不满足条件,所以那么相当于return100+sum(99);

第2次执行sum(),sum()递归调用,那么这时就是return99+sum(98);

直到第99次执行sum(),sum()递归调用,那么就是return2+sum(1);

第100次执行sum(),还是sum()递归调用,这时return 1被触发了;

整体形式就变成了return 100+99+98+… …+2+1;递归操作虽然可以简化的调用,但是在实际的开发之中,所编写的代码可能会很少出现有递归情况。就是说在写代码的确会有递归,但是递归不是写的,是由系统提供的。大部分情况下考虑的都只是一些简单的处理逻辑,这个就是现在的开发过程。递归少去使用还有另外一个原因:如果处理不当则会造成内存溢出,主要就是栈溢出。

但说到递归,再说一个更有代表性的程序,如下:

image.png

阶乘的过程实际上也是一个往上涨倍数的过程,1的阶乘就是1,2就是1×2,3的阶乘是6... ... 90的阶乘就相当庞大了,这个数据只有double能装下。

在进行阶乘计算的时候必须要考虑选择的数据类型,肯定不能够使用long或int,只能够使用double,而且如果阶乘更大,double也装不下,就要采用其他方式来处理了。

90的阶乘的代码如下:

image.png

其执行结果如下:

image.png


image.png

上面范例的代码如下:

image.png

其运行结果如下:

image.png

所以这个过程可以直接采用递归的调用处理形式来完成,实际上有一部分递归都是可以通过循环来完成,但是如果使用递归要比使用循环结构看起来更加清晰一些。不过一般情况下,知道递归这种形式即可。

相关文章
|
编译器 开发工具 C#
使用MindOpt时常见的报错,以及对应的解决方法
使用MindOpt时常见的报错,以及对应的解决方法
|
4月前
|
JSON 搜索推荐 机器人
直播间自动发言机器人,抖音快手小红书哔哩哔哩机器人, 自动评论app机器人打字弹幕脚本
多平台支持:整合抖音、哔哩哔哩等平台的自动化操作 智能评论生成:结合视频内容动态生成个性化评论
|
9月前
|
机器学习/深度学习 人工智能 DataWorks
《AI牵手DataWorks,实时数据分析“一路狂飙”》
在大数据时代,数据是企业的生命线,实时数据分析能力至关重要。阿里巴巴的DataWorks作为强大的数据中台工具,结合人工智能(AI)技术,彻底改写了实时数据分析格局。传统方法面临数据量增长、复杂结构及缺乏自适应能力等挑战,而AI通过机器学习和深度学习算法,实现了智能预警、个性化推荐和实时风险评估等应用场景,显著提升了数据分析的速度和精度。成功案例显示,某互联网公司引入AI赋能的DataWorks后,用户活跃度提升30%,购买转化率提高20%。未来,AI与新兴技术的融合将进一步推动实时数据分析的发展。
400 6
|
数据可视化 数据挖掘
OKR工作法能带来什么样的变化?如何根据OKR设定具体的工作目标?
本文深入探讨了OKR(Objectives and Key Results)目标管理框架的起源、定义、实施步骤及其优势,特别介绍了“板栗看板”在OKR管理模式中的应用,展示了如何通过现代化工具提升OKR的实施效果,助力企业明确方向、提高透明度、增强团队协作,最终实现战略目标。
OKR工作法能带来什么样的变化?如何根据OKR设定具体的工作目标?
|
人工智能 并行计算 算法
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
435 0
|
Java Android开发
vscode+java开发环境中文乱码问题~
vscode+java开发环境中文乱码问题~
847 0
|
关系型数据库 数据库 索引
|
编解码
ffmpeg捕捉摄像头发送rtmp
打印 DirectShow 支持的设备列表(true 可用1替换): ffmpeg -list_devices true -f dshow -i dummy 本计算机打印出的信息如下:[dshow @ 0000000002f282c0] DirectShow video devices (som...
1603 0