c#递归函数并非所有代码路径都返回值
我试图创建递归函数,但我得到了一个错误:不是所有代码路径都返回一个值我知道为什么会出现这个错误,因为c#递归函数并非所有代码路径都返回值,c#,function,recursion,C#,Function,Recursion,我试图创建递归函数,但我得到了一个错误:不是所有代码路径都返回一个值我知道为什么会出现这个错误,因为if没有返回某个值,但我不希望它返回某个值。。。如何绕过这个错误?(这应该只是一个警告) 编辑:当用户单击按钮时,我这样称呼它 private void bCalculate_Click(object sender, EventArgs e) { profit = double.Parse(tbMoney.Text); months = int.Pa
if
没有返回某个值,但我不希望它返回某个值。。。如何绕过这个错误?(这应该只是一个警告)
编辑:当用户单击按钮时,我这样称呼它
private void bCalculate_Click(object sender, EventArgs e)
{
profit = double.Parse(tbMoney.Text);
months = int.Parse(tbMonth.Text);
tbPpofit.Text = calculate(profit,months+1).ToString();
}
如果我像你说的那样写return,它不会给出我需要的结果,只需在递归分支中添加一个return:
if (months != 0)
return calculate(profit * 0.3, months);
...
为递归代码添加一个
return
值:
if (months != 0)
return calculate(profit * 0.3, months);
我不希望它返回一些东西
但是您的函数必须返回一个double,您可能希望返回calculate(利润*1.3,月)代码>但我们必须猜测。当然,递归不是最好的方法。你不需要递归来做这个计算。好吧,比你们。。我会做点别的,我同意马丁的观点。这个问题有一个非递归的解决方案。
if (months != 0)
return calculate(profit * 0.3, months);