c#递归函数并非所有代码路径都返回一个值

标签 c# function recursion

我试图创建递归函数,但出现此错误:并非所有代码路径都返回一个值 我知道为什么会出现此错误,因为 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 它不会给出我需要的结果

最佳答案

只需在递归分支中添加一个返回:

  if (months != 0)
        return calculate(profit * 0.3, months);
  ...

关于c#递归函数并非所有代码路径都返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893889/

相关文章:

c# - 确实在 'using' block 中中止线程处理已使用的实例

c# - 从默认 "Application1"名称更改项目名称

java - 如何获得 Java 中具有重复项的所有组合(递归)?

c - 如何从此递归函数中获取 fork() 调用的子进程总数?

java - 仅使用递归从星星中创建一个三角形

c# - XAML 分组的 GridView/语义缩放不显示所有子项?

c# - 使用Interlocked.CompareExchange作为锁,只用于进入,不用于退出,是否安全?

javascript - 如何阻止 javascript 中的警报在页面加载时触发,并使其在单击按钮时运行?

algorithm - Mips函数数组

c - 如何检查矩阵反对角线上的项是否相同?