首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于加减数字的递归程序

用于加减数字的递归程序
EN

Stack Overflow用户
提问于 2019-03-08 15:54:01
回答 1查看 852关注 0票数 0

我想实现这个程序,但它在每次函数调用时都会抛出错误,并运行无限循环。

代码语言:javascript
复制
class abc
{
    public static void main(String[] args) {
        int n=16;
        calll(n);
    }
    static int calll(int n)
    {
        if(n>0)
        {
            n=n-5;
            calll(n);
            return n;
        }
        else
        {
            n=n+5;
            calll(n);
            return n;
        }

    }
}  
EN

回答 1

Stack Overflow用户

发布于 2019-03-08 15:58:54

您的函数没有结束条件。

无论n是否大于5,都运行calll函数,然后再运行calll函数,直到无穷大。

您需要一个结束递归的条件,例如将调用函数更改为:

代码语言:javascript
复制
static int calll(int n)
{
    if(n>0)
    {
        n=n-5;
        calll(n);
        return n;
    }
    else
    {
        return n;
    }

}

但是,这个函数仍然是没有意义的,因为您实际上并没有对n做任何事情。请记住,您在main函数中定义的n永远不会被修改。

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

https://stackoverflow.com/questions/55058886

复制
相关文章

相似问题

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