调用自身的递归函数满足偶数条件

本文关键字:条件 满足 递归函数 调用 | 更新日期: 2023-09-27 18:06:47

我这里有一个非常简单的代码,使用递归迭代队列类,我需要简单地在屏幕上打印6,但它打印1,请告诉我我错了。

protected void Button1_Click(object sender, EventArgs e)
{
    q.Enqueue(1);
    q.Enqueue(2);
    q.Enqueue(3);
    q.Enqueue(4);
    q.Enqueue(5);
    q.Enqueue(6);
    long id = getID(Convert.ToInt64(q.Dequeue()));
    Response.Write(id);  
}
private long getID(long id)
{
    if (id == 6)
    {
        return id;
    }
    else
    {
        id = Convert.ToInt64(q.Dequeue());
        if (q.Count != 0)
        {
            getID(id);
        }
        else
        {
        }
    }
    return id;
}

}

调用自身的递归函数满足偶数条件

您缺少一个返回:

    if (q.Count != 0)
    {
        return getID(id);  // Here
    }

当前您的代码调用getID,但简单地丢弃结果。然后,当控件到达方法的末尾时,它返回id

Replace

if (q.Count != 0)
{
    getID(id);
}

if (q.Count != 0)
{
    return getID(id);
}

你没有对递归调用的返回值做任何事情,所以你的顶级getID将在它到达底部时简单地返回它的参数。

if测试中尝试return getID(id)