如何在 CPP 中控制递归

how to control recursion in cpp

本文关键字:控制 递归 CPP      更新时间:2024-09-23

嗨,我正在使用 cpp 构建一个项目,因为我大量使用递归,但我无法获得

void user1() {
avg=average(totall, dice);
if(avg>=3){
totallSum+=totall;
// cout<<name1<<" is safe! "<<name1<<"'s turn is score now "<<totallSum<<endl;
if(totallSum<point){
cout<<name1<<" is safe! "<<name1<<"'s turn is score now "<<totallSum<<endl;
}
else { 
user1totall+=totallSum;
break;
}
}
else{
totallSum=0;
user2(name1, name2,point,5,0,user1totall,user2totall,++turn2);
}
user2(name1, name2,point,dice,totallSum,user1totall,user2totall,++turn2);
}

这是我编写的代码的小片段 这里的问题是,在调用user2函数的 else 块中,它工作完全正常,但是当它完全执行时,它不会退出这个user1函数,而是再次调用倒数第二行的user2函数 任何人都可以告诉如何解决此问题

这是因为内存存储在堆栈中(后进先出)。 当它第一次调用user2函数时,由于堆栈内存,程序将首先完成其执行 在它执行完user2函数后,它将再次回到user1并移动到下一个再次调用user2的位置。

要解决此错误user1将返回类型从void更改为int当你调用user2函数时 在该行之后添加return 0;它将完全正常工作