Autor | Zpráva | ||
---|---|---|---|
asdAA Profil * |
#1 · Zasláno: 28. 11. 2007, 20:46:36
Mam scriot, ktory ide aj pomocou while aj pomocou rekurziou
function Rekurzia($paramater) { . . . tu sa nieco deje az pride podmienka, ktora ked vyhovuje vypise hodnotu, inak sa zmensuje parameter if ($pocet >= $premmena) echo $vysledok; else Rekurzia($paramater - 1) } alebo: $super = 0; $parameter = 10; while ($super == 0) { proces . . . if ($pocet >= $premmena) { echo $vysledok; $super = 1; } else $parameter = $paramater - 1) } Script spravi to iste ale co je rychlejsie? Kde je lepsia casova zlozitost? |
||
tiso Profil |
#2 · Zasláno: 28. 11. 2007, 20:58:18
No ako tak pozerám na ten tvoj while, tak si vôbec nepochopil princíp cyklov riadených podmienkou, k rekurzii sa radšej ani nevyjadrujem... Máš a čo učiť chalan...
|
||
asdAA Profil * |
#3 · Zasláno: 28. 11. 2007, 21:00:33
Povies mi co tam je zle?
|
||
nightfish Profil |
#4 · Zasláno: 28. 11. 2007, 21:05:07
rekurze mívá obecně větší paměťovou náročnost, režii kvůli volání (ale to většinou nebývá takový problém), a omezenou hloubku zanoření (danou velikostí zásobníku)
ve tvém případě bych použil cyklus for, protože to vypadá, že znáš dopředu počet opakování... for ($i = 0; $i < $parameter; $i++) { ... } zajímavá literatura ke studiu by pro tebe mohla být: http://www.linuxsoft.cz/article.php?id_article=199 http://www.linuxsoft.cz/article.php?id_article=204 |
||
asdAA Profil * |
#5 · Zasláno: 28. 11. 2007, 21:20:59
Dakujem ty si moj clovek!
Ale for cyklus nie je dobre, pretoze v mojom pripade neviem kedy cyklus skonci, on moze skoncit uz pri $i = i ale aj pri $i = 10, to rozhodne podmienka, takze zrejme je idealne while. Mam pravdu? |
||
bzuK Profil |
#6 · Zasláno: 29. 11. 2007, 14:50:58
Z toho skriptu není jasné, k čemu ti slouží $parameter, $pocet a $premmena to samé
Ale tuto konstrukci:
V klidu zaměň za
Víc o všelijakých cyklech se můžeš dočíst v manuálu PHP, kap. Řídící struktury |
||
Kajman_ Profil * |
#7 · Zasláno: 29. 11. 2007, 15:35:57
takze zrejme je idealne while
klidně můžete mít for a vyskočit kdykoliv pomocí break |
||
Časová prodleva: 18 let
|
0