递归方法没有给出正确的值

Meh*_*hdi 1 java recursive-query

我想使用递归方法但是无法使其正常工作.

例如,在这个程序中,为什么当我显示我的时候b,值是0而不是10?

public static void main(String[] args) {
     int a = 0;

     int b = recursivMethod(a);
     System.out.println(b);
}

static int recursivMethod(int a)
{
    if(a != 10)
        recursivMethod(a+1);

    return a;
}
Run Code Online (Sandbox Code Playgroud)

Pat*_*ini 5

问题是,当您以递归方式调用该方法时,您不会返回该值.也就是说,你recursivMethod正确调用,但然后立即返回初始值a.试试这个:

public static void main(String[] args) {
    int a = 0;

    int b = recursivMethod(a);
    System.out.println(b);
}

static int recursivMethod(int a)
{
    if(a != 10)
        return recursivMethod(a+1); //here, you return the result of your recursive call

    return a; //instead of just immediately returning a, which should only be done only after a == 10
}
Run Code Online (Sandbox Code Playgroud)