| 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: 18 let
|
|||
0