
Ce face operatorul de decrementare? Decrementează valoarea variabilei. Cum așa? Uite-așa… Operatorul – – decrementează valoarea variabilei cu 1. De exemplu, dacă avem variabila num = 1, atunci când folosim operatorul de decrementare, valoarea lui num – –va fi 0 (zero).
Există două tipuri de decrementări pe care le vei găsi în orice limbaj de programare (care se respectă):
- decrementarea cu prefix: – –num
- decrementarea cu postfix: num – –
Oare ce face decrementarea cu prefix? Întâi scade 1 din valoarea variabilei, apoi se folosește de variabilă.
Dar ce face decrementarea cu postfix? Întâi folosește variabila, apoi după ce s-a folosit de ea, îl scade pe 1 din valoarea variabilei.
Hai să vedem și câteva exemple pentru a înțelege totul mai clar.
Exemplu de decrementare cu prefix 🔗
variabila num = 1; // Am definit variabila num afiseaza --num; /* Se afișează valoarea 0 pentru că se face decrementarea, apoi se folosește */ afiseaza num; /* Se afișează valoarea 0 (cum a rezultat din instrucțiunea anterioară) */ afiseaza --num; /* Se face decrementarea și se afișează valoarea -1 */ --num; // Valoarea lui num este acum -2 afiseaza --num; /* Se decrementează, apoi se afișează valoarea -3 */
Ce zici de exemplul anterior?
- Întâi s-a definit variabila num.
- Pe rândul al 2-lea se face decrementarea și se afișează valoarea 0.
- Pe rândul al 7-lea se afișează valoarea lui num, care este 0 (deci nu s-a intervenit cu nimic asupra ei…).
- Pe rândul al 11-lea se face decrementarea, apoi se afișează valoarea -1.
- Pe rândul al 15-lea se face doar decrementarea (num = -2).
- Pe rândul al 17-lea se face decrementarea și apoi se afișează valoarea -3.
Cum ți se pare? Totul e logic, nu?
Exemplu de decrementare cu postfix 🔗
variabila num = 10; // Se definește variabila num num--; /* Variabila num se decrementează și va avea valoarea 9 */ afiseaza num--; /* Se afișează valoarea 9, apoi se decrementează, deci num = 8 */ afiseaza num--; /* Se afișează valorea 8, apoi se decrementează, astfel că acum num = 7 */ num--; // num = 6 afiseaza num--; /* Se afișează valoarea 6, după aceea se decrementează (num = 5) */ afiseaza num; // Se afișează valoarea 5
Hai să vedem ce face codul (pseudocodul) anterior:
- Definim variabila num, căruia îi atribuim valoarea 10.
- Pe rândul al 3-lea se face decrementarea (num = 9).
- Pe rândul al 7-lea se afișează valoarea 9, apoi se face decrementarea (num = 8).
- Pe rândul al 12-lea se afișează valoarea 8, apoi din nou se decrementează (num = 7).
- Pe rândul al 17-lea se face doar decrementarea (ținem minte că num = 6).
- Pe rândul al 19-lea se afișează valoarea 6, apoi iarăși se decrementează (num = 5).
- Pe ultimul rând se afișează valoarea 5.
Hai că nu e greu… Fii atent la fiecare linie și încearcă să gândești logic! Orice întrebare ai, te rog să o scrii într-un comentariu. Mulțumesc!
Așadar, ține minte că operatorul de decrementare (– –) scade cu 1 valoarea variabilei și că avem două cazuri:
- decrementarea cu (– –)prefix, unde folosim variabila direct cu noua valoare decrementată;
- decrementarea cu postfix(– –), unde folosim valoarea normală a variabilei, apoi ținem minte că se decrementează.
Aceste cazuri se observă foarte bine la afișare.
Îți las 3 probleme și te rog să scrii într-un comentariu ce afișează fiecare.
Problema 1 🔗
variabila num = 2; num--; afiseaza num; --num; afiseaza num;
Problema 2 🔗
variabila num = 8; afiseaza num--; --num; num--; afiseaza --num; afiseaza num--; afiseaza num;
Problema 3 🔗
variabila num = 100; num--; afiseaza num--; afiseaza --num; afiseaza num; --num; num--; afiseaza num--; afiseaza --num; afiseaza num;
Dacă ai timp, te rog să lași un comentariu în care să explici ce se afișează la fiecare problemă.
Crezi că e ceva ce nu ai înțeles? Scrie-mi în comentarii și voi încerca să-ți explic ca să fie totul clar. Mulțumesc!
Învață să fii profesionist!
De interes 🔗
Vezi ce face operatorul de incrementare (++).