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ă.
Oare 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ă vezi și câteva exemple pentru a înțelege mai exact…
Exemplu de decrementare cu prefix
1| variabila num = 1; // definim variabila num 2 | afiseaza --num; // se afișează valoarea 0 pentru că se face decrementarea, apoi se folosește 3| afiseaza num; // se afișează valoarea 0 (de la rândul anterior) 4| afiseaza --num; // se face decrementarea și se afișează valoarea -1 5| --num; // valoarea num este acum -2 6| 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 întâi decrementarea, apoi se afișează valoarea 0; pe rândul al 3-lea se afișează valoarea lui num, care este 0 (deci nu s-a intervenit cu nimic asupra ei…); pe rândul al 4-lea se face decrementarea, apoi se afișează valoarea -1; pe rândul al 5-lea se face doar decrementarea (num = -2); pe ultimul rând se face decrementarea, apoi se afișează valoarea -3. Cum ți se pare? Totul e logic.
Exemplu de decrementare cu postfix
1| variabila num = 10; // se definește variabila num 2| num--; // variabila num se decrementează și va avea valoarea 9 3| afiseaza num--; // se afișează valoarea 9, apoi se decrementează (deci num = 8) 4| afiseaza num--; // se afișează valoarea 8, apoi se decrementează (acum num = 7) 5| num--; // num = 6 6| afiseaza num--; // se afișează valoarea 6, apoi se decrementează (num = 5) 7| afiseaza num; // se afișează valoarea 5
Hai să vedem ce face codul anterior (pseudo-codul). Definim variabila num, căruia îi atribuim valoarea 10; pe rândul al 2-lea se face decrementarea (num = 9); pe rândul al 3-lea se afișează valoarea 9, apoi se face decrementarea (num = 8); pe rândul al 4-lea se afișează valoarea 8, apoi se decrementează (num = 7); pe rândul al 5-lea se face doar decrementarea (ținem minte că num = 6); pe rândul al 6-lea se afișează valoarea 6, apoi 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ă și decrementarea cu postfix, unde folosim valoarea normală a variabilei, apoi ținem minte că se decrementează… Cazurile acestea le observi foarte bine la afișare.
Îți las 3 probleme și te rog să scrii într-un comentariu ce afișează fiecare.
Problema 1
1| variabila num = 2; 2| num--; 3| afiseaza num; 4| --num; 5| afiseaza num;
Problema 2
1| variabila num = 8; 2| afiseaza num--; 3| --num; 4| num--; 5| afiseaza --num; 6| afiseaza num--; 7| afiseaza num;
Problema 3
1| variabila num = 100; 2| num--; 3| afiseaza num--; 4| afiseaza --num; 5| afiseaza num; 6| --num; 7| num--; 8| afiseaza num--; 9| afiseaza --num; 10| afiseaza num;
Te invit să lași un comentariu în care să explici ce se afișează la fiecare problemă.
Dacă e ceva ce nu ai înțeles, scrie te rog în comentarii și voi încerca să-ți explic ca să-ți fie totul clar.
Învață să fii profesionist!
(De interes) Vezi ce face operatorul de incrementare (++) AICI.
Sursă imagine: Martin Sanchez on Unsplash