首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java -为什么这个递归方法超出了我的预期

java -为什么这个递归方法超出了我的预期
EN

Stack Overflow用户
提问于 2018-12-12 09:04:09
回答 1查看 55关注 0票数 2

编写一个非常简单的程序来测试递归。程序会打印一些东西,直到数字不大于0为止。

代码语言:javascript
复制
public class TestIt {

public static void print(int f){
    while(f>0){
        System.out.println("Not today");
        f--;
        print(f);
    }
  }
}

上面的代码是从主程序调用的,如下所示。

代码语言:javascript
复制
public static void main(String[] args) {
  TestIt.print(2);
}

也许我最终失去了理智,但程序打印的次数超出了我的预期。如果我向该方法发送3,那么程序将打印7次。有什么想法可以解释原因吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-12 09:07:07

因为你做错了

代码语言:javascript
复制
while(f>0){
    System.out.println("Not today");
    f--;
    print(f);
}

您将在循环中调用方法print f

因为它是递归的,所以它将被递归地调用f-1次

所以它将成为死亡的时代。

删除while循环,并将按您所需的方式工作

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53734632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档