-
Zde jsme skončili s naší
hrou na hod mincí.
-
Začali jsme vygenerováním
náhodného čísla mezi 0 a 1.
-
Pak jsme číslo zaokrouhlili
k nejbližšímu celému číslu.
-
Toto nám vrátilo číslo,
které bylo buď 0 nebo 1.
-
Následně jsme pomocí elipsy
nakreslili tuto realistickou minci.
-
Ta je buď fialová nebo žlutá,
v závislosti na číslu.
-
A zde pro to máme kód.
-
Pokud je "integer" 0,
použij fialovou barvu.
-
Jinak použij žlutou.
-
Minci nakreslíme
tady tím dole.
-
Teď jsem se ale rozhodla,
že moje mince má 3 strany.
-
Ano, třístranná mince.
-
Pojďme tedy přidat
tu třetí stranu.
-
Začnu určením
čísla mezi 0 a 2.
-
To mi po zaokrouhlení vrátí číslo,
které bude buď 0, 1 nebo 2.
-
V našem kódu pro kreslení
jsme ale pokryli pouze 2 případy.
-
Pokud je "integer" 0, použij fialovou,
jinak použij žlutou.
-
Nyní "jinak" může značit
0, 1 nebo 2.
-
Co kdybych udělala to samé,
co jsem udělala předtím?
-
Ale uvnitř bloku "else".
-
Napíšu tedy:
-
Pokud se "integer" rovná 1,
použij žlutou barvu (tak jako předtím).
-
Jinak nastavíme barvu
na červenou.
-
To by šlo.
-
Toto znamená,
-
že pokud je "integer" 0, použij fialovou,
jinak pokud je 1, použij žlutou,
-
jinak – pokud není 0 ani 1 ale 2,
použij barvu červenou.
-
Několikrát to spustím
a funguje to!
-
Kdybych chtěla k minci
přidat další strany,
-
mohla se vrátit sem nahoru,
a určit číslo mezi 0 a 3.
-
Pak bych prohloubila
tento "else" blok.
-
Poté bych měla více
if-else příkazů a tak dále.
-
Až bych měla hromadu
vnořených bloků.
-
A až poté bych si uvědomila,
že je tento kód nechutný!
-
Kód by měl být lehce čitelný a pěkný,
a ne tak odporný, jak jen to jde.
-
Tady je to, co uděláme.
-
Kdykoli máme jeden příkaz "if",
nebo "if-else" příkaz v bloku "else",
-
a opravdu nic jiného neděláme,
nenastavujeme žádnou barvu ani příkaz.
-
Vše co máme je jen jeden příkaz "if",
který obsahuje blok "else".
-
V tom případě můžeme příkaz
spojit s předcházející řádkou.
-
Pokud platí, že "else if (integer === 1)",
nastav barvu na žlutou.
-
A tento poslední "else" blok
není vnořený nikde.
-
Umístíme ho na samý konec.
-
Toto celé teď znamená:
-
Pokud je "integer" rovný 0,
nastav fialovou,
-
jinak pokud je rovný 1,
nastav žlutou,
-
jinak – pokud ani jedno není pravda,
nastav červenou.
-
A jak můžete vidět,
stále to funguje.
-
Skvělá věc je, že můžeme mít
tolik else-if, kolik jen chceme.
-
A tím pádem je pro mě
jednoduché přidat více stran mince.
-
Pojďme to teď udělat.
-
Určíme číslo mezi
0 a 3.
-
Poté přidáme ještě jeden
else blok, který vypadá takto:
-
else if (integer === 2),
vybarvíme červenou.
-
A tento poslední else blok použijeme,
když bude "integer" roven 3.
-
Vybarvíme minci na modro.
-
Abyste toto mohli udělat,
musíte vždy začít s příkazem if.
-
A poté můžete použít tolik else-if
příkazů, kolik jen chcete.
-
A tento poslední je volitelný.
-
Vlastně ho nepotřebujeme.
-
Potom je ale možné,
že bude vše nepravdivé.
-
A tím pádem se žádný
z bloků nepřehraje.
-
Ale dokud ho tam máme,
jeden z bloků se přehraje určitě.
-
Tohle je případ,
kdy moc nezáleží na tom,
-
jestli řeknete if-else, if-else nebo
použite jen obyčejný if příkaz.
-
Tak jako na začátku.
-
Například:
if (integer === 3).
-
A to kvůli tomu,
-
že není možné, aby se "integer" rovnal
0 a zároveň 1, 2 nebo 3.
-
Tyto podmínky se
všechny vzájemně vylučují.
-
Vždy se přehraje pouze jeden
z těchto bloků.
-
Nemusí tomu tak
ale vždy být.
-
Co kdybychom udělali podobnou hru
bez zaokrouhlování na celé číslo?
-
Část pro zaokrouhlení
teď odstraním.
-
Odstraním i část
pro kreslení.
-
A pojďme pro mou hru
nastavit nová pravidla.
-
Pořád generuji číslo
mezi 0 a 3.
-
Rozšířím osu o
více čárek.
-
Řekněme, že pokud bude číslo mezi 0 a 1,
použijeme barvu fialovou.
-
Pokud bude číslo mezi 1 a 2,
použijeme barvu žlutou.
-
A pokud bude číslo mezi 2 a 3,
použijeme barvu červenou.
-
Pojďme to teď provést pomocí
příkazů if a else-if.
-
Začnu: pokud je "number"
menší než 1.
-
Takže je menší než 1,
ale zároveň je mezi 0 a 3.
-
Tím pádem musí
být v tomto rozmezí.
-
V tom případě nastavím
barvu fialovou.
-
Jinak pokud bude číslo menší než 2,
nastavím barvu žlutou.
-
A jinak nastavím výplň
na červeno.
-
Pracuje to tak, jak má.
-
Pokud je číslo menší než 1,
nachází se v tomto rozmezí.
-
Jinak je větší nebo rovno 1,
ale zároveň méně než 2.
-
A tím pádem je v tomto rozmezí,
nastavíme tedy žlutou.
-
Jinak musí být větší či rovno 2,
a bude tím pádem v tomto rozmezí.
-
A tady je případ toho,
co bychom nemohli říct:
-
Pokud je číslo menší než 2
a pokud je menší než 3.
-
A to kvůli tomu,
-
že pokud je číslo menší než 1,
tak ja zároveň menší než 2.
-
A stejně tak bude menší než 3.
-
Tím pádem bude naše mince
pokaždé červená.
-
A proto se hodí používat
příkaz else-if.