V češtině máme různé části řeči.
Podstatná jména, přídavná jména, předložky a slovesa.
Pak máme hromadu pravidel,
která nám pomáhají poskládat všechny části řeči dohromady.
Mohla bych třeba říct: "Pes knihy můj jí."
Určitě byste se divili, co to má znamenat.
Pokud jste si to ještě nevšimli,
nemůžete jen tak narvat dva podstatná jména před jméno přídavné a sloveso.
Nefunguje to.
Co kdybych je ale prohodila a řekla:
"Můj pes jí knihy."
Teď už tomu určitě rozumíte.
Mohla bych dokonce nahradit sloveso "jí" za sloveso "hází".
Gramaticky by to bylo pořád správně.
I když si asi těžko představíte, jak můj pes hází knihu.
Při programování máme namísto částí řeči takzvané "typy".
Jeden druh typů už znáte, čísla.
Čísla používáme v našem kódu pro kreslení pořád.
A stejně jako v češtině, někdy použít čísla smysl dává a někdy ne.
Co kdybych do funkce pro pozadí napsala "100 minus"?
Cokoli, co následuje po minus by mělo být číslo.
Anebo aspoň něco, co se číslu rovná.
Jako například 14 plus 15.
Co kdybych ale napsala jen "100 mezera"?
Za mezeru nemůžu ale napsat žádné číslo.
A to proto, že "100 mezera plus 10" nic neznamená.
V programování máme tedy další typ, boolean.
Jmenuje se boolean,
protože ho vymyslel člověk, který se jmenoval George Boole.
A na rozdíl od čísla, které může mít různé hodnoty,
boolean může obsahovat jen dvě hodnoty: true nebo false.
A jak vidíte, po napsání zmodrají.
Což znamená, že jsou to velmi speciální slova.
Už jste na boolean narazili a to aniž byste si to uvědomili.
U podmíněných příkazů.
Pojďme si je rychle připomenout.
Vytvořím proměnnou "number" s číslem 40.
Teď napíšu podmíněný příkaz.
Pokud je "number" menší než 50, vykreslí se tato první elipsa.
Teď to jenom překopíruji do podmíněného příkazu.
Kód odsadím a to tak, že vše označím a zmáčknu tab.
Čili náš příkaz nyní říká:
Pokud je "number" menší než 50, což je, nakreslíme vrchní elipsu.
V případě, že mám číslo větší než 50, vrchní elipsa jednoduše zmizí.
Čili tento výraz uvnitř závorek je vlastně booleanový výraz.
Nezapomeňte, matematickým výrazem je cokoli, co se rovná číslu.
Například 3 plus 2 plus 4 krát 8.
Booleanovým výrazem je cokoli, co se rovná booleanu.
Dobrým způsobem, jak zjistit, zda se výraz rovná booleanu,
je vložit před něj slovo "je" a zeptat se na něj jako na otázku.
Pokud to zní jako ano/ne otázka, pak se jedná o booleanový výraz.
Tady se můžeme zeptat: Je "number" menší než 50?
Ano, ano je.
A tím pádem se jedná o booleanový výraz.
Na druhou stranu, co kdybych měla 4 plus 4?
Zkusila bych se zeptat: Je 4 plus 4?
Ne, není to boolean.
Zpět k podmíněnému příkazu.
Mezi tyto závorky můžu napsat cokoli.
Musí se ale jednat o boolean anebo o booleanový výraz.
Mohla bych například napsat "if true" a elipsa by se vykreslovala pořád.
Anebo bych mohla napsat "if false" a elipsa by se vůbec neobjevila.
Dále bych mohla napsat "if 3 je menší než 4".
To je booleanový výraz, který bude mít vždy hodnotu "true".
To je ale celkem zbytečné, elipsa se totiž objeví vždy.
Nebo 3 je menší než 4, což bude mít vždy hodnotu "false".
Dále můžu také přidělit boolean proměnným.
Vytvořím si novou proměnnou "var" a nazvu ji "WinstonIsCool".
A přidělím jí booleanovou hodnotu, čili true nebo false.
Řekněme, že "true", protože Winston je super.
A protože proměnná nyní obsahuje booleanovou hodnotu,
můžu ji zkopírovat a vložit do tohoto podmíněného příkazu.
A jak vidíte, elipsa se vykresluje, protože hodnota WinstonIsCool je "true".
Mohla bych také nahradit toto za booleanový výraz.
Například: 2 je menší než 4.
Pokud vytvoříte proměnnou, která má mít booleanovou hodnotu,
měli byste jí dát jméno, které popisuje podmínku pro "true".
Dobrý způsobem, jak si jméno ověřit je vložit ho do podmíněného příkazu.
Tak zkontrolujete, zda jako podmínka dává smysl.
Zapomeňte na to, že Winston je cool.
To už dávno víme.
Řekněme, že mám proměnnou "muffins".
Takže "if muffins".
To mi nic moc neříká.
Jako jméno proměnné je to tedy nevhodné.
Mohla bych ale napsat "if muffinsAreBaking".
To by tedy říkalo:
Když je tato proměnná "true", muffiny se pečou.
A neptejte se mě na muffiny, o to tady vůbec nejde.
Teď vrátíme zpět výraz "if ‚number‘ je menší než 50".
Nyní se podívejme na další booleanové výrazy.
Doposud jste viděli "menší než" a "větší než".
Můžete ale zadat i hodnotu "menší nebo rovno".
Zkusme "if number je menší nebo rovno 48".
Zároveň můžeme napsat "if number je větší nebo rovno 48".
Pokud tomu tak je, nakreslíme vrchní elipsu vpravo.
Teď to odsadíme.
A pokud byste chtěli zjistit, zda jsou si dva čísla přesně rovna,
můžete napsat "number tři rovnítka a číslo 48."
Tento výraz s rovnítky je více podobný tomu z matematiky.
Akorát namísto jednoho rovnítka používáme tři za sebou.
Trošku přehnané, že?
A na závěr máme výraz pro zjištění, zda si dva čísla vůbec nejsou rovna.
Můžete napsat "if number vykřičník a dva rovnítka 48".
V tom případě nakreslíme poslední elipsu.
Když se podíváme nahoru, uvidíme, že "number" je 48.
Je tedy menší nebo rovno 48.
Kvůli tomu se vykresluje vrchní levá elipsa.
Zároveň je větší nebo rovno 48.
Zároveň se rovná 48.
Ale současně není nerovno číslu 48.
A kvůli tomu nemáme spodní pravou elipsu.
A pokud se trochu pohráme s "number",
bude se měnit to, které elipsy se vykreslí.
Teď už znáte boolean!
A stejně jako matematické výrazy,
i booleanové výrazy mohou být hodně komplikované.
O tom si ale povíme příště.