方法的递归是指在一个方法的内部调用自身的过程。递归必须要有结束条件,否则将陷入无限递归的状态,永远无法结束调用。

代码

public class Example24{
public static void main(String[] args){
int sum=getSum(4); // 调用递归方法,获得1~4的和
System.out.println("sum="+sum); // 打印结果
} // 使用递归实现 求1~4的和
public static int getSum(int n){
if(n == 1){
// 满足条件,递归结束
return 1;
}
int temp=getSum(n-1);
return temp+n;
}
}

结果

分析

定义了一个getSum()方法用于计算1~n之间自然数之和。程序中的【int temp=getSum(n-1);】相当于在getSum()方法的内部调用了自身,这就是方法的递归,整个递归过程在【n == 1】时结束。

整个递归过程中getSum()方法被调用了4次,每次调用,n的值都会递减。当n的值为1时,所有递归调用的方法都会以相反的顺序相继结束,所有的返回值会进行累加,最终得到结果10。

图例

根据代码和图例,可结合B站视频进一步理解

视频链接:https://www.bilibili.com/video/BV175411a7Kk?share_source=copy_web

<- 完 ->

最新文章

  1. BZOJ 2034 【2009国家集训队】 最大收益
  2. 空间点绕轴旋转公式&amp;程序(C++)
  3. MySQL MEM_ROOT详细讲解
  4. 他答对一半(打一字)asp.net开源简答题项目
  5. 2015年第六届蓝桥杯C/C++程序设计本科B组决赛
  6. Python DBUtils
  7. c++函数模板---3
  8. android开发之socket快传文件以及消息返回
  9. 巧用Session Manager还原Firefox丢失会话
  10. ContentType
  11. MySQL datetime的更新,删除网上的一些老概念
  12. 剑指offer-(20)包含min函数的栈
  13. 笔记7 AOP练习&lt;有疑问&gt;
  14. Spring MVC中用@ResponseBody转json,对json进行处理方法汇总
  15. leetcode答案 有效的括号(python)
  16. Linux /var/log下的各种日志文件详解
  17. Gym 101194C / UVALive 7899 - Mr. Panda and Strips - [set][2016 EC-Final Problem C]
  18. POJ 1182 食物链(并查集+偏移向量)题解
  19. hadoop fs 命令使用
  20. ServiceDesk Plus解析内容,简化工单管理

热门文章

  1. MySQL数据库基础(2)表结构管理
  2. .Net Core 3.1 WebApi使用Swagger生成Api文档
  3. xpath如何使用正则、xpath定位svg标签、xpath常用集合
  4. Ubuntu18.04 + Windows10 双系统安装
  5. MATLAB m文件编译错误之错误使用slCharacterEncoding
  6. 怎样安装python的 模块、 包、 库方法总结
  7. Python中的GIL锁
  8. gitlab修改(重置)root用户密码
  9. PyCharm撤消/恢复
  10. react中异步组件以及withRouter的使用