Dan*_*ano 3 java recursion static-methods return
所以,我有这个代码,这就是我解决了一个给我的练习的方式,它包括创建一个接收数字的递归函数,然后给你1的总和,其间的所有数字,和你的号码.我知道我让它听起来很混乱,但这是一个例子:
如果我插入数字5,那么返回的值必须是15,因为:1 + 2 + 3 + 4 + 5 = 15.
public class Exercise {
public static void main(String[] args) {
int returnedValue = addNumbers(6);
System.out.print(returnedValue);
}
public static int addNumbers(int value) {
if (value == 1) return value;
return value = value + addNumbers(value-1);
}
}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,我的代码工作正常,但我仍然不明白为什么Eclipse让我写了两个返回,这就是我想知道的.
有没有办法我只能写一次"回归"?
当然,你可以只用一个回报写它:
public static int addNumbers(int value) {
if (value > 1) {
value += addNumbers(value - 1);
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,通过让一些变量保留运行结果直到您结束为止.在这种情况下,我能够就地执行value,在其他情况下,您可能需要创建一个局部变量,但是将中间结果存储到某个地方直到到达返回点的想法是一般的.