我想实现这个程序,但它在每次函数调用时都会抛出错误,并运行无限循环。
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;
}
}
} 发布于 2019-03-08 15:58:54
您的函数没有结束条件。
无论n是否大于5,都运行calll函数,然后再运行calll函数,直到无穷大。
您需要一个结束递归的条件,例如将调用函数更改为:
static int calll(int n)
{
if(n>0)
{
n=n-5;
calll(n);
return n;
}
else
{
return n;
}
}但是,这个函数仍然是没有意义的,因为您实际上并没有对n做任何事情。请记住,您在main函数中定义的n永远不会被修改。
https://stackoverflow.com/questions/55058886
复制相似问题