-1

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

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);
}
}
4

2 回答 2

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);
}
于 2013-08-23T18:44:08.963 回答
1

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

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

static void callAgain() {
callAgain();
}

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

于 2013-08-23T18:58:59.170 回答