Cel mai simplu mod de a înțelege diferența dintre i++ și ++i

Pe principiul ”omul din greșeli învață”, am să vă propun azi să înțelegem diferența dintre expresia i++ și ++i . Sunt sigur că i++ e nelipsit din utilizarea zilnică și așa devine oarecum expresia de facto pentru a incrementa o variabilă, dar în același timp suntem ”păcăliți” să credem că este echivalentă cu i+1.

Exemplele de mai jos sunt în PHP, însă le puteți adapta foarte ușor la alte limbaje, eliminând în principiu $ din fața numelor variabilelor.

Dacă rulăm următorul cod:

Vom vedea pe ecran: a=0 iar b=2; Ceea ce nu prea are sens nu? De fapt b=2 oarecum e corect deoarece, am pus de două ori ++ pe lîngă i și deci a fost incrementat de două ori.

Hai să mai luăm un caz, o funcție recursivă:

Dacă executăm codul de mai sus, o să observăm că rulează la ifinit, și afișează în continuu ”Sunt la iteratia 1 din 100”. Se pare că în acest caz simbolul local al funcției $i, nu se incrementează. Dar dacă schimbăm codul astfel:

De această dată funcția va rula de 100 de ori.

Deci diferența dintre i++ și ++i e că expresia i++ incrementează valoarea lui i și returnează valoarea ne-incrementată pe când expresia ++i incrementează valoarea lui i și returnează valoarea incrementată.