5

我尝试创建递归函数,但出现此错误:并非所有代码路径都返回一个值我知道为什么会出现此错误,因为if没有返回某些内容但我不希望它返回某些内容...如何绕过此错误? (这应该只是警告)

    private double calculate(double money, int months)
    {
        months--;
        if (months != 0)
            calculate(profit * 0.3, months);
        else
            return profit;
    }

编辑:当用户单击按钮时,我这样称呼它

    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 它不会给出我需要的结果

4

2 回答 2

11

只需将 return 添加到递归分支:

  if (months != 0)
        return calculate(profit * 0.3, months);
  ...
于 2012-12-15T16:18:05.367 回答
5

为您的代码添加一个return值以进行递归:

  if (months != 0)
        return calculate(profit * 0.3, months);
于 2012-12-15T16:18:58.953 回答