调用自身的递归函数满足偶数条件
本文关键字:条件 满足 递归函数 调用 | 更新日期: 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)