Heim >Web-Frontend >js-Tutorial >Warum gibt meine rekursive Steuerberechnungsfunktion „Undefiniert' zurück?

Warum gibt meine rekursive Steuerberechnungsfunktion „Undefiniert' zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 06:55:09417Durchsuche

Why Does My Recursive Tax Calculation Function Return Undefined?

Rekursive Funktion gibt undefiniert zurück

Die bereitgestellte Funktion berechnet Steuern mithilfe der Rekursion, kann die Rekursion jedoch nicht stoppen. Dieses Problem entsteht dadurch, dass im rekursiven Arm der Funktion kein Wert zurückgegeben wird.

Im if (taxWage > minWage)-Block:

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

Der Code berechnet Steuern rekursiv, tut dies jedoch nicht einen Wert zurückgeben oder returnTax festlegen. Das Fehlen einer Return-Anweisung führt zu einem undefinierten Rückgabewert.

Um dies zu beheben, kann eine Return-Anweisung zu diesem Arm hinzugefügt werden:

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

Mit dieser Anpassung wird die Funktion jetzt ausgeführt Geben Sie einen Wert zurück, um zu verhindern, dass die Rekursion auf unbestimmte Zeit fortgesetzt wird.

Das obige ist der detaillierte Inhalt vonWarum gibt meine rekursive Steuerberechnungsfunktion „Undefiniert' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn