Úloha 2 – Použití logických a relačních operátorů v podmínkách
Úvod do úlohy
Jednoduché podmínky jsou skvělým startem, ale v reálných programech málokdy rozhodujeme jen podle jedné proměnné. Často potřebujeme kombinovat více testů dohromady – například kontrolovat věk uživatele a současně i to, zda zadal správné heslo. Právě k tomu slouží relační a logické operátory, díky nimž můžeme vytvářet složitější výrazy. Ty se pak vyhodnotí vždy na true (pravda) nebo false (nepravda), a podle toho se program rozhodne, který kód spustí.
Teorie a principy
Relační operátory porovnávají hodnoty:
-
>– větší než -
<– menší než -
>=– větší nebo rovno -
<=– menší nebo rovno -
===– rovnost hodnoty i typu (striktní porovnání) -
!==– nerovnost hodnoty nebo typu
Logické operátory pak umožňují kombinovat více podmínek:
-
&&– logické A (obě podmínky musí být pravdivé) -
||– logické NEBO (stačí, aby jedna podmínka byla pravdivá)
Při vyhodnocování se vždy dostaneme k výsledku true nebo false, i když je výraz složitější. To je důležité – podmínky v if nikdy nevrací číslo nebo text, ale vždy jen pravdu nebo nepravdu.
Praktické příklady kódu
1. Kontrola věku pomocí relačních operátorů:
2. Kombinace podmínek pomocí &&:
3. Použití || (NEBO):
4. Použití !== (nerovnost):
Typické chyby / záludnosti
-
Záměna
==a===: operátor==porovnává jen hodnotu, zatímco===navíc i datový typ. Proto může být výsledek odlišný. Doporučuje se vždy používat===a!==. -
Zapomenuté závorky při složitějších výrazech: pokud kombinujete
&&a||, je lepší výrazy uzavřít do závorek, aby bylo jasné, co se vyhodnocuje dříve. -
Přehnaně složité podmínky: když podmínka obsahuje příliš mnoho logických operátorů, kód se hůře čte. V takových případech je lepší rozdělit logiku do více kroků.
-
Očekávání jiného výsledku než true/false: studenti si někdy myslí, že podmínka vrací například číslo. Vždy je to ale jen pravda nebo nepravda.
Shrnutí
-
Relační operátory slouží k porovnávání čísel a textů (
>,<,===,!==…). -
Logické operátory kombinují podmínky (
&&pro A,||pro NEBO). -
Výsledkem každé podmínky je vždy
truenebofalse. -
Pozor na čitelnost: složité podmínky je dobré rozdělit do více kroků nebo použít závorky.
-
Doporučené je používat
===a!==, aby nedocházelo k neočekávaným výsledkům.