再帰関数が未定義を返します
提供された関数は再帰を使用して税金を計算しますが、再帰を停止できません。この問題は、関数の再帰アーム内で値が返されないために発生します。
if (taxWage > minWage) ブロック内:
if (taxWage > minWage) { // calculates tax recursively calling two other functions difference() and taxStep() tax = tax + difference(taxWage) * taxStep(taxWage); var newSalary = taxWage - difference(taxWage); taxes(tax, newSalary); }
コードは税金を再帰的に計算しますが、計算はしません。値を返すか、returnTax を設定します。 return ステートメントがない場合、戻り値は未定義になります。
これを修正するには、このアームに return ステートメントを追加できます。
if (taxWage > minWage) { // calculates tax recursively calling two other functions difference() and taxStep() tax = tax + difference(taxWage) * taxStep(taxWage); var newSalary = taxWage - difference(taxWage); return taxes(tax, newSalary); }
この調整により、関数は次のようになります。値を返し、再帰が無期限に継続するのを防ぎます。
以上が再帰税計算関数が未定義を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。