gpt4 book ai didi

java - Java 递归方法

转载 作者:行者123 更新时间:2023-12-02 10:45:53 25 4
gpt4 key购买 nike

我有一小段代码用于查找某些数字的总和:

public class TestClass {

public static int sumOfNums(int num[], int int) {
if(int == num.length-1) return int;

else if( (num[int]%2==0) || num[int] <= 0 ) {
return num[int] + sumOfNums(num, int+1); }

else return 0 + sumOfNums(num, int+1);
}

public static void main(String[] args) {
int[] arr = {-2,0,8,4,5,6,10,-5,-2,7,9};

System.out.println(sumOfNums(arr, 0));
}

}

但是,每当我运行 print 语句时,都会出现异常:

Exception in thread "main" java.lang.StackOverflowError
at TestClass.sumOfNums(TestClass.java:13)
at TestClass.sumOfNums(TestClass.java:10)

有人可以帮我吗?

最佳答案

正如另一位用户所说,你的递归永无止境。

arr[head-1] 更改为 head-1 应该可以解决这一行的问题:

否则返回 0 + sumNegEven(arr, arr[head-1]);

并在这里更改它:

return arr[head] + sumNegEven(arr, arr[head-1]); }

关于java - Java 递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com