
Ce face operatorul de incrementare? Incrementează valoarea variabilei. Cu cât? Dacă avem variabila num++, atunci incrementarea va fi cu 1.
În orice limbaj de programare vei găsi operatorul de incrementare ++. Exact așa, cu două semne de plus (++).
Există două tipuri de incrementări, fiecare cu un rol foarte important de care trebuie să ținem cont:
- incrementare cu prefix: ++num
- incrementare cu postfix: num++
Ce face incrementarea cu prefix? Întâi se incrementează valoarea variabilei, iar apoi te poți folosi de variabilă cu noua valoare.
Ce face incrementarea cu postfix? Întâi se folosește valoarea curentă a variabilei, iar apoi se incrementează.
Hai să dau și câteva exemple. Evident că variabila va fi incrementată în ambele cazuri, doar că trebuie să fim atenți când anume se întâmplă acest lucru.
Exemplu de incrementare cu prefix 🔗
variabila num = 10; ++num; /* În momentul acesta, variabila num a fost incrementată și are valoarea 11 */ afiseaza num; // Se afișează valoarea 11 afiseaza ++num; /* Se incrementează cu 1, apoi se afișează valoarea 12 */ afiseaza ++num; /* Se incrementează valoarea cu 1, apoi se afișează valoarea 13 */
Explic pe scurt ce face acest mic cod (pseudocod):
- Variabila num a fost declarată, apoi inițializată cu 10.
- După aceea s-a incrementat cu 1. Ce valoarea are num acum? 11.
- Pe rândul 10 se incrementează din nou variabila num, deci își schimbă valoarea, iar afișarea va fi 12, nu 11.
- În final, pe rândul 14, se afișează valoarea 13 pentru că noi deja ținem minte că valoarea num a fost 12, iar acum o afișăm după incrementare.
Exemplu de incrementare cu postfix 🔗
variabila num = 4; afiseaza num++; /* Se afișează valoarea 4, dar ținem cont că apoi se va incrementa cu 1 */ afiseaza num; /* Se afișează valoarea 5 (am ținut minte de la rândul 2 că num va deveni 5) */ num++; /* Se incrementează valoarea num, deci acum va fi 6 */ afiseaza num; /* Se afișează valoarea 6 */ afiseaza num++; /* Se afișează valoarea 6, apoi ținem cont că se incrementează */ afiseaza num; /* Se afișează valoarea 7, deci la rândul X num a fost afișat ca fiind 6, dar ulterior a fost incrementat și ținem cont de acest lucru */
Ce se întâmplă în exemplul anterior?
- Se definește variabila num și i se atribuie valoarea 4.
- Pe rândul 2 se afișează valoarea 4 (apoi se incrementează).
- Pe rândul 7 se afișează valoarea 5 (ținem cont că ieșirea din rândul 2 a dat-o pe num ca fiind egală cu 5).
- Se produce o incrementare pe rândul 12.
- Se afișează valoarea 6 (așa cum e normal) pe rândul 16.
- Se face o nouă incrementare pe rândul 18.
- Pe rândul 22 se afișează valoarea 7, valoare dată de la finalul rândului 18.
Ce zici? Te-ai prins cum funcționează operatorul de incrementare cu prefix și cu postfix? În orice interviu pe o poziție de inginer (software/hardware) sau de programator, vei primi un exercițiu de tipul ăsta. Să nu mai pomenesc cât de esențial este să știi conceptul de față în viața reală de programator… Dar e simplu, ai nevoie doar de antrenament și apoi totul e limpede și clar.
Îți las mai jos 3 probleme și te rog să scrii într-un comentariu ce afișează fiecare.
Problema 1 🔗
variabila num = 2; num++; ++num; afiseaza num;
Problema 2 🔗
variabila num = 3; ++num; afiseaza num++;
Problema 3 🔗
variabila num = 1; num++; ++num; num++; ++num; afiseaza num++ + ++num;
Problema 3 este un pic mai dificilă, dar se poate face un calcul și cu acei operatori.
Dacă nu ai înțeles, scrie în comentarii ce anume vrei să pricepi și voi încerca să te ajut.
Învață să fii profesionist!
De interes 🔗
Vezi ce face operatorul de decrementare (– –).