ホームページ > ウェブフロントエンド > jsチュートリアル > 再帰関数が時々 unknown を返すのはなぜですか?

再帰関数が時々 unknown を返すのはなぜですか?

DDD
リリース: 2024-12-27 11:23:10
オリジナル
202 人が閲覧しました

Why Do Recursive Functions Sometimes Return Undefined?

再帰関数が未定義を返す

再帰関数を使用するときに問題が発生します。再帰関数は、予期しない値の未定義を返す場合があります。この問題は、次のようなシナリオで発生する可能性があります。

function calculateTaxes(tax, taxWage) {
  const minWage = firstTier;

  if (taxWage > minWage) {
    tax += calculateDifference(taxWage) * calculateTaxStep(taxWage);
    const newSalary = taxWage - calculateDifference(taxWage);
    calculateTaxes(tax, newSalary);
  } else {
    return tax + taxWage * calculateTaxStep(taxWage);
  }
}
ログイン後にコピー

ここでは、関数が再帰的ブランチで値を返さずにそれ自体を呼び出し続けていることが明らかです。この省略により、関数は未定義を返します。

この問題を解決するには、再帰呼び出しが値を返すか戻り変数を設定することが重要です。次のコードは、意図した動作を示しています:

function calculateTaxes(tax, taxWage) {
  const minWage = firstTier;

  if (taxWage > minWage) {
    tax += calculateDifference(taxWage) * calculateTaxStep(taxWage);
    const newSalary = taxWage - calculateDifference(taxWage);
    return calculateTaxes(tax, newSalary); 
  } else {
    return tax + taxWage * calculateTaxStep(taxWage);
  }
}
ログイン後にコピー

以上が再帰関数が時々 unknown を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート