这是否算作递归函数...如果不是,那么原因是什么。哪些更改会将其归类为...谢谢
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);
}
}
答案 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