递归函数的跳出问题........

IT流渊 2007-11-10 09:26:32
不知道有什么办法跳出递归函数啊?
我自己有断代码是递归函数的,但是递归了一次之后,就不能直接跳出函数了。
即使用return也跳不出来的,只是跳到递归里被再次引用的函数名下面一句代码中。
比如:
void digui()
{
i = 0;
for(i=0;i<110;i++)
{
XXXXX;
ttttt;
if()
{}
else{}
if()
{
return;
}
else{
digui();
}
uuu;

}
}比如第一次循环进入digui()中,但是第二次进入return代码,可是跳不出来,只是跳到uuu;这里。
...全文
290 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT流渊 2007-11-13
  • 打赏
  • 举报
回复
只能用goto语句解决,我最好的想法。
BEYOND_Q 2007-11-10
  • 打赏
  • 举报
回复
因为uuu是递归函数中必须执行的语句,你第二次进入return,也就是退出你第二次的这个递归函数,但是,你第一次进入递归后,的uuu还没执行。
bjlei86 2007-11-10
  • 打赏
  • 举报
回复
int flag=0;
void digui()
{
if(flag) return;
i = 0;
for(i=0;i <110;i++)
{
XXXXX;
ttttt;
if()
{ ; }
else{}
if()
{
flag=1;
return;
}
else{
digui();
}
uuu;
}
}
_石头_ 2007-11-10
  • 打赏
  • 举报
回复


void digui()
{
i = 0;
for(i=0;i <110;i++)
{
XXXXX;
ttttt;
if()
{ ; }
else{}
if()
{
return;
}
else{
digui();
}
uuu;
goto xxx; // xxx必须是为digui() 以外的语句.
}
}



iulovec 2007-11-10
  • 打赏
  • 举报
回复
uuu每次都要执行
如果递归只要一次判断就退出
那么uuu 执行一次后就OK 了

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧