无法使用返回函数终止递归

时间:2016-10-01 23:30:02

标签: java recursion

我正在尝试在具有双返回类型的函数中使用递归。我实际上想要使用递归显示49,但它显示10.我无法理解这背后的机制。根据我在调试后的理解,计数器函数回调本身,因为其积压中的返回值,因此返回到值10而不是仅显示49.我不确定这种情况的解决方法。描述我的问题的代码如下: public static void main(String [] args){     int i = 10;     计数器(I);     是System.out.print(ⅰ); } public static int counter(int i){     我++;     if(i <50)         计数器(I);     回归我; }

1 个答案:

答案 0 :(得分:1)

您需要将返回的值分配给i。您传递了i的值,而不是对它的引用,因此在方法中更新它不会在调用者的范围内更新i。

public static void main( String[] args)
{
    int i = 10;
    i = counter(i);
    System.out.print(i);
}

public static int counter(int i){
    i++;
    if(i < 50)
        i = counter(i);
    return i;
}
相关问题