gpt4 book ai didi

java - java中的尾递归

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:31 24 4
gpt4 key购买 nike

这是展示尾递归的好例子吗?

public printName(){
System.out.println("Smith");
printName();
}

我不打算在现实生活中这样做,但我把它作为我考试的例子。这个正确吗?

最佳答案

不,有两个原因:

  • 尾递归仅在编译器支持时才有值(value)(尾调用优化)。在 Java 中,它仍将以 StackOverflowError

  • 结尾
  • 显示一些停止条件会很好。你的代码相当于永远循环运行。

考虑 Scala 中几乎相同的代码,唯一的区别是 Scala 编译器执行尾调用优化并且循环永远运行:

def printName() {
println("Smith");
printName()
}

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

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