版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BinCain1993/article/details/78342638
/**
递归的原则:
1. 基准情形; 2. 不断推进; 3. 设计法则; 4. 合成效益法则
2.递归实例:判断当传入的数字一直递归到1.组合成字符串输出
以下通过 错误和正确的写法对比学习
*/
/**
* 错误的递归
*/
private String testRecursive1(String str,Integer inte){
str = str + inte.toString();
//如果满足条件就递归
if(inte>1){
inte = inte - 1;
testRecursive1(str,inte);
}
return str;
}
@Test
public void testFun()
{
System.out.println(testRecursive1("得到的数据是:",5));
}
测试结果如下:
得到的数据是:5
Process finished with exit code 0
在debug过程中可以看到先递归到 1,str=得到的数据是:54321,接着就return,在到父函数return,然后再祖父函数return。。。
最后return到第一级方法,即输出 “得到的数据是:5”
/**
* 正确的可以return的递归函数
*/
private String testRecursive2(String str,Integer inte){
str = str + inte.toString();
//如果满足条件就递归
if(inte>1){
inte = inte - 1;
return testRecursive2(str,inte);
}
return str;
}
@Test
public void testFun(){
System.out.println(testRecursive2("得到的数据是:",5));
}
测试结果如下:
得到的数据是:54321
Process finished with exit code 0