Úloha 1 – Logické operátory &&, || a ! – kontrola přístupu

Stránky: Moodle ZČU
Kurz: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Kniha: Úloha 1 – Logické operátory &&, || a ! – kontrola přístupu
Vytiskl(a): Nepřihlášený host
Datum: neděle, 18. října 2026, 13.20

Úvod do úlohy

Logické operátory patří k úplným základům programování, protože umožňují rozhodovat se podle více podmínek současně. Když chceme ověřit, zda je uživatel přihlášen a zároveň má správná oprávnění, nebo zda je číslo menší než 10 nebo větší než 100, bez logických operátorů bychom podobné situace jen těžko popsali. Jejich zvládnutí je proto klíčové pro tvorbu složitějších podmínek, které v reálných aplikacích potkáváme neustále – od validace formulářů po řízení herní logiky.

Teorie a principy

V JavaScriptu máme tři základní logické operátory:

  • && (AND) – výsledkem je true, pokud oba výrazy jsou pravdivé.

  • || (OR) – výsledkem je true, pokud alespoň jeden výraz je pravdivý.

  • ! (NOT) – výsledkem je opak hodnoty (z true se stane false a naopak).

Každá logická operace vždy vrací hodnotu true nebo false. Díky tomu lze tyto operátory řetězit a vytvářet složené podmínky, které přesně popisují, co chceme ověřit.

Je dobré si uvědomit, že v JavaScriptu se do logických výrazů mohou zapojit i jiné hodnoty než jen true a false. Například číslo 0, prázdný řetězec "" nebo null se vyhodnotí jako falešné (tzv. falsy hodnoty), zatímco většina ostatních hodnot se bere jako pravdivé (truthy).

Praktické příklady kódu

1. Použití && (AND)

2. Použití || (OR)

3. Použití ! (NOT)

Typické chyby / záludnosti

  • Záměna && a || – studenti často mechanicky používají jeden operátor bez uvědomění si rozdílu (např. testují dvě podmínky pomocí OR, i když má být AND).

  • Zapomínání na závorky – složitější výrazy je lepší jasně strukturovat závorkami, aby byla čitelnost jednoznačná.

  • Truthy a falsy hodnoty – někdy se studenti diví, proč if ("0") vyhodnotí jako pravda (řetězec "0" je totiž truthy, i když číslo 0 je falsy).

  • Negace ! dvakrát po sobě – !!hodnota se používá jako rychlý způsob převodu libovolné hodnoty na čistý boolean, ale začátečníci se často v zápisu ztrácí.

Shrnutí

  • Základní logické operátory jsou &&, || a !.

  • Vrací vždy hodnotu true nebo false.

  • Slouží k tvorbě složených podmínek v kódu.

  • Pozor na truthy/falsy hodnoty a nutnost závorek ve složitějších výrazech.

 Díky nim dokážeme modelovat složité logické situace, a proto je dobré je procvičit v různých kombinacích.

Úloha

Zadání (kontext úlohy)

Spravuješ jednoduchý systém, který rozhoduje, zda má uživatel přístup.
Přístup je povolen pouze tehdy, pokud je uživatel přihlášen a zároveň má roli „správce“.


Cíl úlohy

Procvičíš si použití logických operátorů &&, || a ! při práci s podmínkami.


Vstupní podmínky
  • Pracuješ pouze s nově vytvořeným souborem script.js.


Požadovaný výstup
  1. Vytvoř dvě proměnné:

    • prihlasen (boolean) – zda je uživatel přihlášen,

    • role (řetězec) – role uživatele.

  2. Pomocí podmínky ověř:

    • Pokud je přihlášen a jeho role je „správce“, vypiš: Přístup povolen

    • Pokud je přihlášen, ale není správce, vypiš: Nemáš oprávnění

    • Pokud není přihlášen, vypiš: Musíš se přihlásit


Doplňující pokyny
  • Nezapomeň na rozdíl mezi && (logické AND) a || (logické OR).

  • Použij ! pro kontrolu, zda uživatel není přihlášen.

  • Pro přehlednost můžeš využít vnořené if nebo else if bloky.

Řešení úlohy

Co je zde splněno

  • Vytvořeny proměnné prihlasen (boolean) a role (řetězec).

  • Použit operátor ! pro kontrolu, zda uživatel není přihlášen.

  • Použito logické && pro ověření, že uživatel je přihlášen a zároveň má správnou roli.

  • Výstupy odpovídají zadaným podmínkám.

Poznámky

  • Pořadí podmínek začíná nejdříve kontrolou !prihlasen, aby se zbytečně neověřovala role nepřihlášeného uživatele.

  • Alternativně by se daly podmínky napsat i jiným pořadím, ale guard clause (nejdřív odmítnutí) zvyšuje čitelnost.