Maison >interface Web >js tutoriel >Pourquoi ma fonction de calcul de taxe récursive renvoie-t-elle un résultat indéfini ?
La fonction récursive renvoie un résultat non défini
La fonction fournie calcule les taxes en utilisant la récursion, mais elle ne parvient pas à arrêter la récursion. Ce problème vient du fait que la fonction ne renvoie pas de valeur dans le bras récursif.
Dans le bloc 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); }
Le code calcule les taxes de manière récursive mais ne le fait pas. renvoie une valeur ou définit returnTax. L'absence d'instruction return entraîne une valeur de retour non définie.
Pour remédier à cela, une instruction return peut être ajoutée à ce bras :
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); }
Avec cet ajustement, la fonction va désormais renvoie une valeur, empêchant la récursion de continuer indéfiniment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!