Úloha 3 – Kombinace logických operátorů
Úvod do úlohy
Umět používat logické operátory jednotlivě je první krok, ale skutečná síla se projeví až ve chvíli, kdy je dokážeme kombinovat do složitějších podmínek. Programy často potřebují rozhodovat na základě více faktorů – například zda je uživatel přihlášen, má dostatečná oprávnění a současně není jeho účet zablokován. Podobně v cyklech chceme pokračovat jen tehdy, pokud platí kombinace několika pravidel. Proto je důležité nejen psát podmínky správně, ale i přehledně, aby jim rozuměl i někdo jiný, kdo kód čte.
Teorie a principy
-
Kombinace operátorů:
-
&&(AND) a||(OR) se dají spojovat do řetězců složitých logických podmínek. -
Priorita:
!má přednost před&&, a&&má přednost před||. Přesto je vhodné používat závorky, aby byla logika jasná.
-
-
Negace (
!):-
Negace umožňuje vyjádřit opak podmínky.
-
Dvojitá negace
!!převádí libovolnou hodnotu na čistý boolean (true/false).
-
-
Zjednodušování výrazů:
-
!(a && b)je totéž co!a || !b(De Morganovy zákony). -
!(a || b)je totéž co!a && !b. -
Tyto přepisy pomáhají vyjadřovat podmínky čitelněji a bez zbytečných složitostí.
-
Praktické příklady kódu
1. Kombinace v if podmínce
2. Použití v cyklu
3. Přepis pomocí De Morganových zákonů (Štěpán, J., 1995, prohlíženo 20. 9. 2025)
Typické chyby / záludnosti
-
Chybějící závorky – studenti spoléhají na prioritu operátorů a výraz pak nedává očekávaný výsledek.
-
Nadměrné používání negací – složité
if (!(a && !b))se dají přepsat na srozumitelnější varianty. -
Nepřehledné podmínky – příliš dlouhý řádek s více
&&a||bez komentářů či rozdělení znesnadňuje čtení. -
Zapomínání na možnost zjednodušení – studenti někdy píšou výraz jako
if (a === true && b === false)místo prostéhoif (a && !b).
Shrnutí
-
Logické operátory lze kombinovat a tvořit složité podmínky v
if, cyklech i jiných výrazech. -
Priorita:
!>&&>||, ale používej závorky pro srozumitelnost. -
Negace pomáhá vyjádřit opak, ale je vhodné podmínky zjednodušovat pomocí De Morganových zákonů.
-
Piš podmínky přehledně, aby byly snadno čitelné i pro ostatní.