递归技术

MrD*_*MrD 0 java recursion

我试图让一个方法使用递归,我的方法读取:

public int recursion(int start) {

if(start >= 1)
    recursion(start-1);

return start;

}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误,告诉我无法找到方法"递归".有什么建议?:)

干杯!

NPE*_*NPE 6

您的代码唯一的问题是您没有返回值recursion(start - 1).即使这样,这也是一个逻辑问题,而不是编译错误.

以下编译对我来说很好:

public int recursion(int start) {
    if (start >= 1)
        return recursion(start - 1);
    return start;

}
Run Code Online (Sandbox Code Playgroud)

因此问题出在其他地方.

如果您收到了您描述的错误,那么您recursion()在尝试调用它时可能会拼错,或者您已经在一个类中定义它但是试图在另一个类的上下文中调用它.

编辑以下是您评论中的代码:

public class recursion1 {
    public int rec1(int start) {
        if (start >= 1)
            return recl(start - 1);
        return start;
    }

    public static void main(String[] args) {
        recursion1 test = new recursion1();
        System.out.println(test.recl(5));
    }
}
Run Code Online (Sandbox Code Playgroud)

该方法称为"rec1"(rec- one),您将其称为"recl"(rec- ell).