![](/img/trans.png)
[英]Why does a subclass of AbstractMvcEndpoint return a 404 despite the method being called?
[英]Why does this recursive method return 400 instead of 404?
为什么该方法返回 400? 值“x”来自 5、15、45、135、405、404、403、402、401、400。我不知道为什么。 请解释。
public int go(int x) {
if(x < 300)
x = go(x * 3);
return x - 1;
}
它会返回不同的值,这取决于你最初用什么来调用它。 如果您最初用 5 调用它,它将返回 400,因为一旦达到 135,您将深入递归函数的 4 层。
所以它确实返回 404 - 给调用者,调用者返回 403,调用者返回 402...直到它达到 400,此时它位于第一个调用者,这是您正在打印的值。
这就是递归函数的工作原理。
如果不清楚,请尝试打印go(go(go(go(go(405)))))
结果,因为当递归完成时,这就是示例中有效的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.