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);