Maison >interface Web >js tutoriel >Pourquoi ma fonction de calcul de taxe récursive renvoie-t-elle un résultat indéfini ?

Pourquoi ma fonction de calcul de taxe récursive renvoie-t-elle un résultat indéfini ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 06:55:09356parcourir

Why Does My Recursive Tax Calculation Function Return Undefined?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn