gpt4 book ai didi

c# - 这个递归函数怎么能返回真呢?

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:02 26 4
gpt4 key购买 nike

这是我的递归函数:

public bool controllaSelezioneSottopagina(KPage k_oPaginaAttuale, KPage k_oPaginaSuperiore)
{
foreach (KPage k_oSottoPagina in k_oPaginaSuperiore.SottoPagine)
{
if (k_oSottoPagina.ID == k_oPaginaAttuale.ID)
{
return true;
}
else
{
if (k_oSottoPagina.SottoPagine.Count != 0)
{
controllaSelezioneSottopagina(k_oPaginaAttuale, k_oSottoPagina);
}
}
}

return false;
}

I aspect,从我调用它的地方,总是得到 false(函数末尾的 return false,将永远是返回的最后一个结果)。

事实上,有时它会返回 true。

这怎么可能?试过调试...但我找不到错误...

最佳答案

您调用该函数一次,然后它循环,然后返回 true 或递归调用自身。只有当它遍历所有元素并且永远不会满足条件 (k_oSottoPagina.ID == k_oPaginaAttuale.ID) 时,它才会返回 false。

现在假设这个条件实际上在第一层就满足了(还没有进行递归或者所有的递归调用都返回)。

您调用该函数一次,它会循环,例如在第一次测试时,此条件为真。然后你会看到一个返回值'true'

关于c# - 这个递归函数怎么能返回真呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com