Úloha 2 – Inkrementace a dekrementace – praktické příklady (část 2)
Úvod do úlohy
V programování se velmi často setkáváme s potřebou „posunout“ hodnotu proměnné o jedna – typicky při procházení pole, v cyklech nebo při počítání něčeho. K tomu slouží speciální operátory inkrementace (++) a dekrementace (--). Díky nim nemusíme psát x = x + 1, ale můžeme jednoduše zapsat x++ nebo ++x. Na první pohled to vypadá stejně, ale pořadí operace (prefix vs. postfix) hraje velkou roli. Správné pochopení tohoto rozdílu je důležité, abychom předešli chybám v podmínkách nebo složitějších výrazech.
Teorie a principy
-
Inkrementace (
++) – zvýší hodnotu proměnné o 1. -
Dekrementace (
--) – sníží hodnotu proměnné o 1.
Oba operátory existují ve dvou formách:
-
Prefixová forma (
++xnebo--x)-
Nejprve se hodnota proměnné změní a pak se vrátí nová hodnota.
-
-
Postfixová forma (
x++nebox--)-
Nejprve se vrátí původní hodnota, a teprve potom se proměnná změní.
-
Praktické příklady kódu
Použití v cyklu:
Složitější výrazy:
Typické chyby / záludnosti
-
Záměna prefixu a postfixu: studenti často nerozliší, kdy se hodnota změní a kdy se vrací původní.
-
Používání v komplikovaných výrazech: kombinace
x++ + ++xvede k nepřehlednému kódu a obtížně předvídatelným výsledkům. -
Přílišná závislost na vedlejších efektech: doporučuje se
++a--používat hlavně samostatně nebo v cyklech, ne v těžko čitelných výrazech.
Shrnutí
-
++zvyšuje hodnotu o 1,--snižuje hodnotu o 1. -
Prefix (
++x): změní hodnotu a pak vrátí novou. -
Postfix (
x++): vrátí původní hodnotu a až poté proměnnou změní. -
Rozdíl se projeví zejména v kontextu složitějších výrazů a podmínek.
-
Pro čitelnost kódu je vhodné vyhnout se kombinování více inkrementací/dekrementací v jedné řádce.