什么归类为Java中的递归函数

时间:2013-08-23 18:42:41

标签: java function recursion

这是否算作递归函数...如果不是,那么原因是什么。哪些更改会将其归类为...谢谢

public class Recursion {

public static void recursionFunc(int beginning_value){
    if (beginning_value != 0){
        System.out.println(beginning_value);
        recursionFunc(beginning_value - 1);

    }
}
public static void main(String[] args){
    recursionFunc(10);
}
}

2 个答案:

答案 0 :(得分:4)

直接或间接调用自身的函数称为递归。你的函数调用自己,所以它绝对是递归的。

以下是间接调用自身的递归函数示例:

static void funcA(int x) {
    if (x <= 0) return;
    if (x % 2 == 0) {
        funcB(x-1);
    } else {
        funcC(x-1);
    }
}
static void funcB(int x) {
    funcA(x-1);
}
static void funcC(int x) {
    funcA(x-2);
}

答案 1 :(得分:1)

您的方法是一种递归方法。当一个方法再次调用自身时,它被认为是递归的。所有递归方法都应该在其中构建某种退出,否则该方法将产生Stackoverflow错误。

这是一个没有内置退出的递归方法:

static void callAgain() {
callAgain();
}

以下是有关递归方法的更多详细信息: http://danzig.jct.ac.il/java_class/recursion.html