Autor | Zpráva | ||
---|---|---|---|
Timy Profil |
#1 · Zasláno: 16. 11. 2008, 00:15:00
Zkouším si něco napsat v Javascriptu a nepochopil jsem příkaz return v rekurzi:
<script> function pokus(cislo, res) { alert(fac(3, "čau ")); } function fac(n, nes) { alert("nesmysl:" + nes); if(n==0) return nes; else { nes += "ahoj "; fac((n-1), nes); } } </script> Očekávám, že to vrátí řetězec "čau ahoj ahoj ahoj". Ono to všechno probíhá v pohodě, ty alerty na začátku druhé funkce mi vždycky vypisují co mají ("čau" -- "čau ahoj" -- "čau ahoj ahoj" ...), ale nakonec mi funkce stejně vrátí undefined a finální alert ve funkci "pokus" mi taky vyhodí "undefined". Když to nenechám iterovat (cislo je nula hned na začátku), tak mi funkce normálně vrátí "čau". Kde mám prosím chybu? |
||
ah01 Profil |
#2 · Zasláno: 16. 11. 2008, 00:41:59
Timy
Patrně ti chybí jedno „return“. function fac(n, nes) { alert("nesmysl:" + nes); if(n==0) return nes; else { nes += "ahoj "; return fac((n-1), nes); } } |
||
Timy Profil |
#3 · Zasláno: 16. 11. 2008, 10:27:43
ah01
A jo, díky :-). |
||
Časová prodleva: 15 let
|
0