Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Nelamurire cu for statement
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
cold_bizquit



Data înscrierii: 16/Mai/2008
Mesaje: 2

Trimis: Vin Mai 16, 2008 7:44 pm    Titlul subiectului: Nelamurire cu for statement  

se da urmatorul cod:
Cod: for ($q=10,$w=20,$e=50; (($q+$w+$e)<100); $q++,$w++,$e++,print "$q+$w+$e este egal cu ".($q+$w+$e)."<br/>");
el va afisa asta :
Citat: 11+21+51 este egal cu 83
12+22+52 este egal cu 86
13+23+53 este egal cu 89
14+24+54 este egal cu 92
15+25+55 este egal cu 95
16+26+56 este egal cu 98
17+27+57 este egal cu 101
Intrebarea este de ce imi mai afiseaza si 17+27+57 este egal cu 101 de vreme ce la conditii am specificat clar ca vreau ca Cod:  (($q+$w+$e)<100) ??????? :roll:
Sus  
NooK



Data înscrierii: 21/Iun/2007
Mesaje: 191

Trimis: Vin Mai 16, 2008 9:00 pm    Titlul subiectului:  

Pai in momentul in care iti face adunarea 17 + 27 + 57 = 101 suma este de 98 care e < 100 . apoi mai verifica odata si vede ca e 101 si s-a oprit acolo. daca iti aparea 18 + 27 + 58 = 104 , atunci era o problema.
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1801
Locație: Sibiu

Trimis: Vin Mai 16, 2008 9:50 pm    Titlul subiectului:  

Iti afiseaza aia pentru ca folosesti for-ul total aiurea.

For e implementat asa:
for (initializare; conditie de continuare; operatie la buclare)

Deci tu iti initializezi variabilele:
$q=10;
$w=20;
$e=50;

apoi incepi sa ciclezi, verificand ca suma lor sa fie < 100

apoi executi operatia de ciclare (4 operatii, exact in ordinea asta):
$q++;
$w++;
$e++;
print "$q+$w+$e este egal cu ".($q+$w+$e)."<br/>";

in primul rand, iti afiseaza "17+27+57 este egal cu 101" pentru ca, asa cum a observat si nook, suma este de fapt 98 in momentul verificarii. Dar tu faci operatiile in ordinea asta: verificare, incrementari, afisare. Adica total aiurea si ilogic. Apropo, nu ti s-a parut suspect faptul ca prima suma afisata e 11 + 21 + 51, desi tu ai initializat variabilele cu 10, 20 respectiv 50?

Vrei un cod care sa faca ce vrei tu? Incearca-l pe asta:<?   $q = 10;   $w = 20;   $e = 50;   while (($sum = $q + $w + $e) < 100)      echo $q++, ' + ', $w++, ' + ', $e++ , ' este egal cu ', $sum, '<br />'; ?>

So, next time, use your head. It may hurt at first, but you'll get used to it.

P.S. declar oficial ca asta a fost de departe cel mai ciudat mod de a folosi for-ul. Chiar programeaza cineva in stilul asta?
Sus  
cold_bizquit



Data înscrierii: 16/Mai/2008
Mesaje: 2

Trimis: Sâm Mai 17, 2008 10:42 am    Titlul subiectului:  

Stiu ca asta nu este metoda clasica de a folosi for statement, dar sunt in faza de invatare si incerc sa inlatur ceata de pe ceea ce nu inteleg. Metoda asta de a programa o gasesti ca si exemplu pe siteul php, unde explica for statement, exemplul 4. Imi pare rau ca nu imi este permis sa afisez linkul, ca te trimiteam acolo.Mersi pt lamurire.
Sus  
badtiger



Data înscrierii: 03/Noi/2006
Mesaje: 238

Trimis: Sâm Mai 17, 2008 4:36 pm    Titlul subiectului:  

si daca puneai linkul de forma ht*p:// site( .)com /lol.html crezi ca nu reuseam sa-l accesam?
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community