日期:2014-05-17  浏览次数:21015 次

如何中断for()递归
static UFD searchfather(string fathername,UFD rootnode)
        {//递归地寻找以home为根的name为fathername的节点
            //如何打断for()递归
            if (rootnode.name == fathername && rootnode.childUFD.Count < rootnode.childUFDcount)// && isGo==true)
            {
                return rootnode;
            }
            else
            {
                for (int i = 0; i < rootnode.childUFDcount; i++)
                {
                    searchfather(fathername, (rootnode.childUFD[i]) as UFD);
                }
            }
            return null;
        }


找到节点并返回后,程序还会继续执行。请问该怎么改或者其他什么好的算法。

------解决方案--------------------
for (int i = 0; i < rootnode.childUFDcount; i++)
                {
                    var ufd=searchfather(fathername, (rootnode.childUFD[i]) as UFD);
                        if(ufd != null)
                        {
                            return ufd;
                        }
                }