有人可以向我解釋在這發生了什麼?從我所擁有的小知識(顯然我的思想是錯誤的),對我來說,這應該繼續減少x 1,直到x是3.然後它應該返回到'返回true,部分,並且當函數返回true時,它返回第二個if語句,返回false,然後退出函數,因爲如果函數返回false,則沒有任何操作。但是,這繼續回到第二個if語句,將x加1直到它再次爲9,然後退出。提前致謝。布爾返回遞歸函數意外地改變變量
bool Rec(int x)
{
if(x > 3)
{
if(Rec(x - 1) == true)
{
return false;
}
else
{
return false;
}
}
else
{
return true;
}
}
void main()
{
Rec(9);
}
您的第一個子句可以用'return false;'替換? –
@πάνταῥεῖ:或者帶'return x <= 3的整個函數體' – Olaf
你想完成什麼? 「改變變量...」是什麼意思?這裏的遞歸是無用的。 – Olaf