Una dintre cele mai utilizate operații în programare este incrementarea valoarii unei variabile. Operatorul de incrementare este compus din două semne plus: ++ (și are două forme), sau o variație a următorilor doi operatori: += și =+.
Considerați următorul exemplu:
1 |
variabila = variabila + 1; |
În exemplul de mai sus, vom atribui unei variabile rezultatul adăugării lui 1 la propria ei valoare. Acest lucru se numește incrementare cu 1. Deoarece incrementarea este o operație atât de comună în programare, limbajele de programare, inclusiv C#, oferă programatorilor o notație scurtă pentru ea, numită operator de incrementare. Următoarea bucată de cod utilizează ambii operatori de incrementare a unei variabilă:
1 2 3 4 5 6 7 8 9 10 |
int variabila = 1; Console.WriteLine(variabila); variabila += 1; Console.WriteLine(variabila); variabila++; Console.WriteLine(variabila); Console.Read(); |
Ieșirea va fi următoarea:
După cum se vede, am declarat și inițializat o variabilă de tip int, cu valoarea 1. După aceea, variabila este incrementată în ambele exemple cu 1.
Diferența dintre variabila++ și variabila += 1 este aceea că în primul caz, variabila este întotdeauna incrementată cu 1. În al doilea caz, putem incrementa cu orice valoare dorim, ca în exemplul următor:
1 2 3 |
variabila = variabila + 5; //similar cu aceasta variabila += 5; |
După cum veți vedea, operatorul de incrementare va fi adesea utilizat în bucăți de cod în care programul repetă aceleași instrucțiuni de mai multe ori, numite bucle (vom învăța mai multe despre ele mai târziu).
Dacă ați observat la începutul acestei lecții, am spus că variația ++ a operatorului incrementare are două forme, și de asemenea, am spus că puteți avea += sau =+. Care este diferența dintre aceste două concepte? Ele se disting ca prefix și postfix. Să luăm următoarea bucată de cod:
1 2 3 4 5 6 7 |
variabila = 1; variabila += 1; //incrementează cu 1, folosind prefix variabila =+ 1; //de asemeni incrementază cu 1, folosind postfix variabila++; //de asemeni incrementază cu 1, folosind prefix ++variabila; //incrementează tot cu 1, folosind postfix |
Diferența dintre prefix și postfix este aceea că atunci când utilizați operatorul de incrementarea postfix, C# va utiliza valoarea variabilei în primul rând, și numai după aceea va incrementa valoarea sa. Pe de altă parte, atunci când se utilizează operatorul incrementare prefix, C# va incrementa valoarea în primul rând, și apoi va utiliza valoarea sa. Următorul exemplu va ilustra diferența:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int variabila = 1; Console.WriteLine("Valoarea initială a variabilei este " + variabila); Console.WriteLine("Valoarea variabilei utilizând postfix este " + variabila++); Console.WriteLine("Valoarea variabilei după incrementare este " + variabila); variabila = 1; //resetează valoarea la 1 și testează incrementarea prefix Console.WriteLine("Valoarea inițială a variabilei este " + variabila); Console.WriteLine("Valoarea variabilei utilizând prefix este " + ++variabila); Console.WriteLine("Valoarea variabilei după incrementare este " + variabila); Console.Read(); |
Iar ieșirea va fi
Acum se poate observa că atunci când utilizați operatorul de incrementare postfix, C# folosește valoarea variabilei în primul rând, afișând 1, apoi o incrementează, afișând 2. Pe de altă parte, utilizând operatorul de incrementare prefix, C# incrementează variabila în primul rând, afișând 2, apoi folosește și afișează valoarea deja incrementată.
Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip: