为什么++运算符会在递归方法中导致堆栈溢出但+1不会?

时间:2015-09-11 03:09:11

标签: java recursion

所以我今晚刚刚在学校进行了CS测试,我不得不编写一个递归方法,在数组中找到最大值。

这就是我提出的:

public static int getMax(int[] a, int max, int index)
    {
        if(index == a.length)
        {
            return max;
        }
        if(a[index] > max)
        {
            max = a[index];
        }
        return getMax(a, max, index++);
    }

这就是我在报纸上写的内容,但是我看到我回到家并把它放在我的IDE中试一试,看看它是否有效,我得到了堆栈溢出。所以我做了一些测试,最后将第二次返回更改为:

return getMax(a, max, index+1);

并且不再有堆栈溢出。

为什么++运算符会破坏方法?

由于

0 个答案:

没有答案