方法的定义与使用(方法递归调用)|学习笔记

简介: 快速学习 方法的定义与使用(方法递归调用)

开发者学堂课程【【名师课堂】Java 零基础入门:方法的定义与使用(方法递归调用)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/370/detail/4421


方法的定义与使用(方法递归调用)


内容简介:

一、方法递归调用的定义

二、范例1:实现一个 1-100 的累加操作

三、范例2:实现60!

 

一、方法递归调用的定义

方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备有以下特点:

l 方法必须有一个递归的结束条件

l 方法在每次递归处理的时候一定要做出一些变更

 

二、范例1:实现一个1-100的累加操作

public class TestDemo {

public static void main(String args[]) {

System.out.printIn(sum(100));

}

public static int sum(int sum) {

if(num==1) {   //结束条件

return 1;

}

return num + sum(num-1);  //做出变更

}

}

代码解读如下:

【mian() 调用】第 1 次执行 sum() 方法:return 100+sum(100-1)

【sum() 递归】第 2 次执行 sum() 方法:return 99+sum(99-1)

【sum() 递归】第 2 次执行 sum() 方法:return 98+sum(98-1)

【sum() 调用】倒数第 2 次执行 sum() 方法:return 2+sum(2-1)

【sum() 调用】倒数第 1 次执行 sum() 方法:return 1;

图片4.png


三、范例 2:实现 60!

可以预见该算式输出结果较大,应该使用 double

public class TestDemo {

public static void main(String args[]) {

System.out.printIn(mul (60));

}

public static int sum(int sum) {

if(num==1) {   //结束条件

return 1;

}

return num * mul (num-1);  //做出变更

}

}

通过代码可以发现使用 while 循环的操作其实大部分都可以更换为递归,之所以使用递归主要是一个方法可以执行的操作很多而且结构要好。

相关文章
|
8月前
|
机器学习/深度学习 算法 编译器
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
153 0
链表翻转循环和递归写法(画图分析)
链表翻转循环和递归写法(画图分析)
36 0
|
存储 算法 编译器
【C++技能树】令常规运算符用在类上 --类的六个成员函数II
C++中为了增强代码的可读性,加入了运算符的重载,与其他函数重载一样
62 0
|
Python
巧用for循环嵌套结构
巧用for循环嵌套结构
106 0
|
JavaScript 前端开发 API
📕 重学JavaScript:判断数组中包含哪些值有什么好方法?
你有没有遇到过这样的问题:你想要判断一个数组中包含哪些值,但是却不知道改用什么方法就直接用for循环遍历?🤔
97 0
|
存储 JavaScript
为什么我要说:柯里化 == 闭包+递归?
柯里化是 JS 高程中不可或缺的重心,本篇带你来冲一冲它!!
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
91 0
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
|
Java 开发者
方法的递归调用 | 学习笔记
快速学习方法的递归调用
210 0
方法的递归调用 | 学习笔记
面试官:写一下双重检测单例模式,解释一下每一行,volatile的作用,不加会有什么问题,去掉第一层循环会有什么问题,去掉第二层循环会有什么问题。
面试官:写一下双重检测单例模式,解释一下每一行,volatile的作用,不加会有什么问题,去掉第一层循环会有什么问题,去掉第二层循环会有什么问题。
153 0