Inkrementáló és dekrementáló operátorok (C++)

Segítségükkel könnyebb a változók értékét egyel növelni vagy csökkenteni, helyes használatukkal helyet és időt spórolhatunk.

Inkrementálás

Vegyünk egy ciklusváltozót, amit minden "körben" meg kell növelni. Ha egyel növeljük, ezt a folyamatot inkrementálásnak nevezzük. Többféle utat is választhatunk végcélhoz.Legyen a változónk neve i.

értékadó operátorral (=)

i=i+1;

pluszegyelő operátorral (+=)

i+=1;

inkrementáló operátorral (++)

i++;

Azinkrementáló operátornak kétféle működése van függően attól, hogy a változó melyik oldalán áll. Ha a jobb oldalán áll, kifejezésként használva értéke i, mielőtt egyel megnövelnénk, azonban ha a bal oldalán áll, a kifejezés csak akkor értékelődik ki, mikor már egyet hozzáadtunk. Voila! Megspóroltunk legalább egy sornyi kódot, ha ezzel az operátorral növelt változót kifejezésként használjuk.

i értéke 8

a=i++;

esetén a értéke 8 lesz, i értéke pedig 9

a=++i;

esetén i-hez előbb hozzáadunk egyet, így mindkettő értéke 9 lesz

Inkrementáló operátoros kifejezést gyakran használunk például a for ciklus megadásánál.

Dekrementálás

A dekrementálás a változó értékének egyel történő csökkentése. Minden fent leírt ismeret igaz rá, csupán cseréljük ki a plusz jeleket mínuszra.

Egy példa a használatára

n! kiszámítására készített factorial(n) függvény megszorozza b értékét a-val, dekrementálja, és ezt addig csinálja, amíg a-t nem redukálta egyre. A függvény a b=n! értékkel tér vissza.

unsigned long int factorial(int a){ int b=1;   while(a>1){   b*=a;   a--;   }   return b;  }

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.