动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Java方法递归是什么以及递归怎样实现

07-16 17:23 248浏览
举报 T字号
  • 大字
  • 中字
  • 小字

java的学习中,各位java程序员不仅要有编程的思想,也要时时刻刻积累java语言的各种算法和方法。其中,递归是java方法中的一种,想必看到这篇文章的朋友在前面已经学习掌握了java方法的相关知识点。下面这篇文章主要来学习一下java方法递归的知识。那么什么是java方法递归,递归又该如何实现呢?

Java方法递归是指在一个方法的内部调用自身的过程,以此类推就是java方法递归的理解思想,具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。因此,java方法递归的两个条件就是,一通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式;二存在一种简单情境,可以使递归在简单情境下退出。

我们来研究一下在不使用递归的前提下,完成1到n的求和,这个应该很简单,请看下面代码:

public class RecursionTest02 {
	public static void main(String[] args) {
		int n = 5;
		int result = accumulate(n);
		System.out.println("1到" + n + "的和是:" + result);
	}
	public static int accumulate(int n){
		int result = 0;
		for(int i = 1;i <= n; i++){
			result += i;
		}
		return result;
	}
}

运行结果如下图所示:

那么,使用递归应该怎么写呢?请看以下代码:

public class RecursionTest03 {
	public static void main(String[] args) {
		int n = 5;
		int result = accumulate(n);
		System.out.println("1到" + n + "的和是:" + result);
	}
	public static int accumulate(int n){
		if(n == 1){
			return 1;
		}
		return n + accumulate(n - 1);
	}
}

运行结果如下图所示:

要知道java方法递归有三个要素:一定有一种可以退出程序的情况;总是在尝试将一个问题化简到更小的规模;父问题与子问题不能有重叠的部分。这是实现java方法递归的条件。

不使用java方法递归和使用方法递归的程序运行结果必然都是相同的,但是java方法递归会使代码更简单清晰,可读性更好。虽然可能java零基础的初学者不太能体会到这两个优点,但在后面的学习中,慢慢懂得在合适的程序中用合适的方法后,就会理解java方法递归的好处和作用了。

0人推荐
共同学习,写下你的评论
0条评论
头晕目眩
程序员头晕目眩

3篇文章贡献12177字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消