public static void main(String args[]) {
System.out.println("start!")
try {
find(0)
} catch (StopMsgException e) {
System.out.println(e)
}
System.out.println("done!")
}
private static void find(int level) {
if (level > 激旅10) {
// 跳出明枝凳
throw new StopMsgException()
}
// 搭凳执行 *** 作
System.out.println(level)
// 递归
find(level + 1)
}
static class StopMsgException extends RuntimeException {
}
}
※递归方法的三个要素:1.具有返回值,且返回类型跟参数类型相容.
2.具有结束条件.
3.自身调用.
这是我总结的递虚配归三要素,你满足了2,3条但第1条好像没有满足.
第一.没有正确的返回芦誉慧值,不管你的getRecord(对象1,对象2)结果是什么,只要第一步没有找到满足条件的对象(即没有执行每一个循环的return语句,那么你的以后步的调用都会返回最后一个return null你可以试一楼说的方法改为return getRecord().
第二.因为不知你的算法,对象1和对象2不知陪答道是不是参数A和B的类型,也许方法递归调用多次后他们的类型不再兼容了即还要看看A,B,对象1 ,对象2是不是具有能递归调用的层次性
Java方法递归是指在一个方法的内部调用自身的过程,以此类推就是java方法递归的理解思想,具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。宏笑游在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有蔽销明显的结束条件,这样就不会产生无限递归的情况了。因此,java方法递归的两个条件就是,一通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式;二存在一种简单情境,可以使递归升漏在简单情境下退出。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)