WEBVTT 00:00:01.250 --> 00:00:03.667 Zde jsme skončili s naší hrou na hod mincí. 00:00:03.656 --> 00:00:06.360 Začali jsme vygenerováním náhodného čísla mezi 0 a 1. 00:00:06.360 --> 00:00:08.936 Pak jsme číslo zaokrouhlili k nejbližšímu celému číslu. 00:00:08.936 --> 00:00:12.213 Toto nám vrátilo číslo, které bylo buď 0 nebo 1. 00:00:12.214 --> 00:00:15.908 Následně jsme pomocí elipsy nakreslili tuto realistickou minci. 00:00:15.909 --> 00:00:18.908 Ta je buď fialová nebo žlutá, v závislosti na číslu. 00:00:18.909 --> 00:00:20.986 A zde pro to máme kód. 00:00:20.987 --> 00:00:24.158 Pokud je "integer" 0, použij fialovou barvu. 00:00:24.159 --> 00:00:25.818 Jinak použij žlutou. 00:00:25.819 --> 00:00:27.916 Minci nakreslíme tady tím dole. 00:00:27.917 --> 00:00:30.924 Teď jsem se ale rozhodla, že moje mince má 3 strany. 00:00:30.925 --> 00:00:32.454 Ano, třístranná mince. 00:00:32.455 --> 00:00:34.189 Pojďme tedy přidat tu třetí stranu. 00:00:34.190 --> 00:00:37.108 Začnu určením čísla mezi 0 a 2. 00:00:37.109 --> 00:00:41.532 To mi po zaokrouhlení vrátí číslo, které bude buď 0, 1 nebo 2. 00:00:41.533 --> 00:00:45.608 V našem kódu pro kreslení jsme ale pokryli pouze 2 případy. 00:00:45.609 --> 00:00:48.814 Pokud je "integer" 0, použij fialovou, jinak použij žlutou. 00:00:48.815 --> 00:00:51.884 Nyní "jinak" může značit 0, 1 nebo 2. 00:00:51.885 --> 00:00:54.870 Co kdybych udělala to samé, co jsem udělala předtím? 00:00:54.870 --> 00:00:56.358 Ale uvnitř bloku "else". 00:00:56.358 --> 00:00:57.536 Napíšu tedy: 00:00:57.536 --> 00:01:04.668 Pokud se "integer" rovná 1, použij žlutou barvu (tak jako předtím). 00:01:05.786 --> 00:01:09.877 Jinak nastavíme barvu na červenou. 00:01:09.853 --> 00:01:11.402 To by šlo. 00:01:11.403 --> 00:01:12.577 Toto znamená, 00:01:12.578 --> 00:01:18.917 že pokud je "integer" 0, použij fialovou, jinak pokud je 1, použij žlutou, 00:01:18.917 --> 00:01:24.222 jinak – pokud není 0 ani 1 ale 2, použij barvu červenou. 00:01:24.626 --> 00:01:28.585 Několikrát to spustím a funguje to! 00:01:28.566 --> 00:01:30.865 Kdybych chtěla k minci přidat další strany, 00:01:30.866 --> 00:01:34.039 mohla se vrátit sem nahoru, a určit číslo mezi 0 a 3. 00:01:34.039 --> 00:01:35.857 Pak bych prohloubila tento "else" blok. 00:01:35.857 --> 00:01:38.096 Poté bych měla více if-else příkazů a tak dále. 00:01:38.096 --> 00:01:40.157 Až bych měla hromadu vnořených bloků. 00:01:40.158 --> 00:01:44.703 A až poté bych si uvědomila, že je tento kód nechutný! 00:01:44.704 --> 00:01:48.760 Kód by měl být lehce čitelný a pěkný, a ne tak odporný, jak jen to jde. 00:01:48.761 --> 00:01:50.729 Tady je to, co uděláme. 00:01:50.730 --> 00:01:55.675 Kdykoli máme jeden příkaz "if", nebo "if-else" příkaz v bloku "else", 00:01:55.675 --> 00:02:03.782 a opravdu nic jiného neděláme, nenastavujeme žádnou barvu ani příkaz. 00:02:04.766 --> 00:02:08.443 Vše co máme je jen jeden příkaz "if", který obsahuje blok "else". 00:02:08.443 --> 00:02:12.755 V tom případě můžeme příkaz spojit s předcházející řádkou. 00:02:12.756 --> 00:02:17.073 Pokud platí, že "else if (integer === 1)", nastav barvu na žlutou. 00:02:17.073 --> 00:02:19.948 A tento poslední "else" blok není vnořený nikde. 00:02:19.949 --> 00:02:22.318 Umístíme ho na samý konec. 00:02:22.319 --> 00:02:24.586 Toto celé teď znamená: 00:02:24.587 --> 00:02:27.326 Pokud je "integer" rovný 0, nastav fialovou, 00:02:27.327 --> 00:02:30.234 jinak pokud je rovný 1, nastav žlutou, 00:02:30.235 --> 00:02:34.483 jinak – pokud ani jedno není pravda, nastav červenou. 00:02:34.484 --> 00:02:37.737 A jak můžete vidět, stále to funguje. 00:02:37.738 --> 00:02:41.823 Skvělá věc je, že můžeme mít tolik else-if, kolik jen chceme. 00:02:41.824 --> 00:02:44.702 A tím pádem je pro mě jednoduché přidat více stran mince. 00:02:44.703 --> 00:02:46.608 Pojďme to teď udělat. 00:02:46.608 --> 00:02:48.000 Určíme číslo mezi 0 a 3. 00:02:48.000 --> 00:02:51.631 Poté přidáme ještě jeden else blok, který vypadá takto: 00:02:51.631 --> 00:02:59.614 else if (integer === 2), vybarvíme červenou. 00:02:59.658 --> 00:03:03.287 A tento poslední else blok použijeme, když bude "integer" roven 3. 00:03:03.288 --> 00:03:05.519 Vybarvíme minci na modro. 00:03:09.586 --> 00:03:13.115 Abyste toto mohli udělat, musíte vždy začít s příkazem if. 00:03:13.116 --> 00:03:16.879 A poté můžete použít tolik else-if příkazů, kolik jen chcete. 00:03:16.879 --> 00:03:18.697 A tento poslední je volitelný. 00:03:18.698 --> 00:03:19.927 Vlastně ho nepotřebujeme. 00:03:19.928 --> 00:03:22.349 Potom je ale možné, že bude vše nepravdivé. 00:03:22.349 --> 00:03:24.280 A tím pádem se žádný z bloků nepřehraje. 00:03:24.280 --> 00:03:30.253 Ale dokud ho tam máme, jeden z bloků se přehraje určitě. 00:03:31.284 --> 00:03:33.947 Tohle je případ, kdy moc nezáleží na tom, 00:03:33.947 --> 00:03:40.027 jestli řeknete if-else, if-else nebo použite jen obyčejný if příkaz. 00:03:40.027 --> 00:03:41.858 Tak jako na začátku. 00:03:41.929 --> 00:03:45.538 Například: if (integer === 3). 00:03:45.539 --> 00:03:47.011 A to kvůli tomu, 00:03:47.011 --> 00:03:51.197 že není možné, aby se "integer" rovnal 0 a zároveň 1, 2 nebo 3. 00:03:51.198 --> 00:03:54.222 Tyto podmínky se všechny vzájemně vylučují. 00:03:54.223 --> 00:03:56.608 Vždy se přehraje pouze jeden z těchto bloků. 00:03:56.609 --> 00:03:58.277 Nemusí tomu tak ale vždy být. 00:03:58.278 --> 00:04:01.635 Co kdybychom udělali podobnou hru bez zaokrouhlování na celé číslo? 00:04:01.636 --> 00:04:04.484 Část pro zaokrouhlení teď odstraním. 00:04:04.485 --> 00:04:06.639 Odstraním i část pro kreslení. 00:04:06.640 --> 00:04:09.359 A pojďme pro mou hru nastavit nová pravidla. 00:04:09.359 --> 00:04:12.616 Pořád generuji číslo mezi 0 a 3. 00:04:13.566 --> 00:04:15.775 Rozšířím osu o více čárek. 00:04:16.815 --> 00:04:22.778 Řekněme, že pokud bude číslo mezi 0 a 1, použijeme barvu fialovou. 00:04:26.643 --> 00:04:30.503 Pokud bude číslo mezi 1 a 2, použijeme barvu žlutou. 00:04:30.504 --> 00:04:35.532 A pokud bude číslo mezi 2 a 3, použijeme barvu červenou. 00:04:35.533 --> 00:04:39.290 Pojďme to teď provést pomocí příkazů if a else-if. 00:04:39.291 --> 00:04:43.881 Začnu: pokud je "number" menší než 1. 00:04:43.882 --> 00:04:48.177 Takže je menší než 1, ale zároveň je mezi 0 a 3. 00:04:48.177 --> 00:04:50.116 Tím pádem musí být v tomto rozmezí. 00:04:50.866 --> 00:04:53.126 V tom případě nastavím barvu fialovou. 00:04:55.806 --> 00:05:03.880 Jinak pokud bude číslo menší než 2, nastavím barvu žlutou. 00:05:06.652 --> 00:05:11.993 A jinak nastavím výplň na červeno. 00:05:14.773 --> 00:05:16.255 Pracuje to tak, jak má. 00:05:16.256 --> 00:05:19.686 Pokud je číslo menší než 1, nachází se v tomto rozmezí. 00:05:19.687 --> 00:05:23.602 Jinak je větší nebo rovno 1, ale zároveň méně než 2. 00:05:23.603 --> 00:05:26.731 A tím pádem je v tomto rozmezí, nastavíme tedy žlutou. 00:05:26.732 --> 00:05:31.900 Jinak musí být větší či rovno 2, a bude tím pádem v tomto rozmezí. 00:05:31.900 --> 00:05:34.675 A tady je případ toho, co bychom nemohli říct: 00:05:34.675 --> 00:05:39.379 Pokud je číslo menší než 2 a pokud je menší než 3. 00:05:39.379 --> 00:05:40.192 A to kvůli tomu, 00:05:40.192 --> 00:05:43.152 že pokud je číslo menší než 1, tak ja zároveň menší než 2. 00:05:43.152 --> 00:05:44.718 A stejně tak bude menší než 3. 00:05:44.718 --> 00:05:46.780 Tím pádem bude naše mince pokaždé červená. 00:05:46.781 --> 00:05:50.781 A proto se hodí používat příkaz else-if.