Úloha 1 – Inkrementace a dekrementace – prefix vs. postfix

Site: Moodle ZČU
Course: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Book: Úloha 1 – Inkrementace a dekrementace – prefix vs. postfix
Printed by: Nepřihlášený host
Date: Sunday, 18 October 2026, 1:18 PM

Úvod do úlohy

Bez aritmetiky by žádný program nebyl úplný. Potřebujeme sčítat, odčítat, násobit, dělit a pracovat se zbytkem po dělení. Tyto operace patří mezi vůbec nejčastější, a proto je nezbytné, aby jim studenti rozuměli do hloubky. V JavaScriptu je práce s aritmetickými operátory na první pohled jednoduchá – ale skrývá v sobě i některé záludnosti, zejména proto, že stejný operátor + slouží jak pro sčítání čísel, tak pro spojování řetězců. Porozumění těmto nuancím je klíčem k psaní spolehlivého kódu.


Teorie a principy

JavaScript nabízí pět základních aritmetických operátorů:

  • + … sčítání (nebo konkatenace řetězců)

  • - … odčítání

  • * … násobení

  • / … dělení (vrací desetinné číslo, není to celočíselné dělení)

  • % … zbytek po dělení (modulo)

Chování + závisí na typu operandů:

  • Pokud jsou oba operandy čísla → provede se sčítání.

  • Pokud je alespoň jeden operand řetězec → provede se spojení řetězců (string concatenation).

Příklady:

  • 2 + 3 → 5

  • "2" + 3 → "23"

  • 2 + "3" → "23"

Další operátory (-, *, /, %) se snaží své operandy převést na čísla. Pokud převod selže, výsledkem je NaN (Not a Number).


Praktické příklady kódu


Typické chyby / záludnosti

  • Neočekávaná konkatenace: 5 + "5" vrací "55", ne 10. To je častý zdroj nedorozumění.

  • Zbytek po dělení se zápornými čísly: -10 % 3 vrací -1 (znaménko se řídí podle levého operandu).

  • Dělení nulou: 5 / 0 vrací Infinity (ne vyvolání chyby).

  • NaN při špatném převodu: 10 - "abc" vrací NaN.


Shrnutí

  • V JavaScriptu máme základní operátory: +, -, *, /, %.

  • Operátor + funguje jak pro sčítání čísel, tak pro spojování řetězců.

  • Ostatní operátory pracují jen s čísly a při nevhodném typu operandů vracejí NaN.

  • Pozor na speciální situace: dělení nulou (Infinity), zbytek u záporných čísel, nechtěnou konkatenaci.

Úloha

Zadání (kontext úlohy)

Pracuj v novém souboru script.js a postupně splň všechny části úlohy:


Část 1 – Jednoduchá inkrementace
  • Vytvoř proměnnou cislo = 10.

  • Pomocí ++ ji zvyš o 1:

    • prefixově (++cislo)

    • postfixově (cislo++)

  • Vypiš výsledky do konzole, abys viděl rozdíl.


Část 2 – Postfix vs. prefix ve výrazu

Vyzkoušej tento kód a vysvětli rozdíl:

  • Do komentářů napiš, proč b a d mají rozdílné hodnoty.


Část 3 – Inkrementace v podmínce

Použij tento kód:

  • Vysvětli, proč se vypíší právě ty hodnoty, které uvidíš.

  • Poté změň i++ na ++i a sleduj rozdíl.


Cíl úlohy
  • Naučíš se používat inkrementaci a dekrementaci.

  • Pochopíš rozdíl mezi prefixovou a postfixovou variantou.

  • Dokážeš vysvětlit, jak se tento rozdíl projeví ve výrazech a podmínkách.


Vstupní podmínky
  • Pracuj s novým souborem script.js.


Požadovaný výstup
  • V konzoli budou viditelné výsledky pro prefixovou i postfixovou variantu.

  • V komentářích bude slovně popsán rozdíl v chování.

  • Pochopíš, jak operátory ++ a -- ovlivňují pořadí vyhodnocení ve výrazech.

Řešení úlohy

Co je zde splněno:

  • Část 1 ukazuje rozdíl mezi prefixem a postfixem u ++ a --.

  • Část 2 jasně vysvětluje chování při přiřazení do jiné proměnné.

  • Část 3 předvádí praktický rozdíl v podmínce cyklu while.

  • Ke každému případu jsou připojeny komentáře s vysvětlením.