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

あなたが言うように私がリターンを書くならば、それは私が必要とする結果を与えないでしょう

4

2 に答える 2

11

再帰ブランチにリターンを追加するだけです。

  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 に答える