0:00:00.982,0:00:02.174 A jsme zpátky u programu, 0:00:02.174,0:00:04.414 který pomocí pole vypisuje[br]seznam mých kamarádů. 0:00:04.414,0:00:06.854 Něco se mi ale na něm[br]vůbec nelíbí. 0:00:06.854,0:00:09.146 Pokaždé, když do pole[br]přidám nového kamaráda, 0:00:09.146,0:00:11.403 musím zde dolů přidat nový[br]textový příkaz. 0:00:11.403,0:00:13.232 Řekněme, že přidám Winstona. 0:00:13.232,0:00:15.333 Neukáže se jen tak. 0:00:15.333,0:00:19.915 Pokud chci, aby se ukázal,[br]musím napsat "text(myFriends[3]...". 0:00:19.915,0:00:22.393 Potom ještě změním polohu y[br]a pak už uvidím Winstona. 0:00:22.393,0:00:24.842 To je zbytečně moc práce. 0:00:24.842,0:00:31.102 Chci, aby se při přidání někoho do pole[br]vytvořil textový příkaz automaticky. 0:00:31.308,0:00:34.056 Pamatujete si, jak jsme[br]se učili cykly? 0:00:34.587,0:00:38.206 Cykly nám pomohly opakovat[br]tu samou část kódu několikrát za sebou. 0:00:38.206,0:00:41.067 Například když jsme chtěli[br]mít několik stromů za sebou. 0:00:41.067,0:00:42.746 Nebo hromadu balónů. 0:00:42.746,0:00:46.837 Cykly jsou mimo jiné taky [br]skvělým způsobem pro to, 0:00:46.837,0:00:49.307 jak přehrát část kódu[br]pro každý prvek v poli. 0:00:49.766,0:00:53.617 Cykly použijete skoro vždy, [br]když budete používat pole. 0:00:53.617,0:00:56.308 Pracují spolu opravdu dobře. 0:00:57.427,0:01:00.401 Pojďme tedy pro zobrazení[br]jmen mých přátel použít cyklus. 0:01:00.401,0:01:03.118 Použijeme ho namísto všech[br]těchto textových příkazů. 0:01:03.348,0:01:05.338 Začneme se třemi otázkami, 0:01:05.338,0:01:07.728 na které se ptáme vždy,[br]když tvoříme cyklus. 0:01:07.728,0:01:09.358 První: co chci opakovat? 0:01:09.358,0:01:12.577 Podívám se, co se opakuje,[br]a vidím textový příkaz. 0:01:12.762,0:01:14.596 Druhá: co chci pokaždé změnit? 0:01:14.596,0:01:19.833 Podíváme se a zjistíme, že odlišná[br]je poloha y a aktuální index. 0:01:19.833,0:01:25.153 Kamarádovo číslo a poloha y. 0:01:25.310,0:01:27.338 Třetí: jak dlouho chceme opakovat? 0:01:27.338,0:01:30.730 Chceme opakovat, až dokud[br]nevypíšeme všechny kamarády. 0:01:33.900,0:01:36.810 Teď už víme, co chceme,[br]a tím pádem můžeme vytvořit cyklus. 0:01:36.952,0:01:40.523 Začneme proměnnou pro počítaní,[br]abychom měli přehled o stavu cyklu. 0:01:40.523,0:01:43.392 Napíšeme:[br]var friendNum = 0; 0:01:44.417,0:01:48.712 A číslem 0 začíname kvůli tomu,[br]že je to zároveň prvním číslem pole. 0:01:48.712,0:01:50.029 Není to číslo 1. 0:01:50.029,0:01:51.718 Poté máme while cyklus. 0:01:51.718,0:01:57.208 Napíšeme:[br]while(friendNum < myFriends.length) 0:01:57.869,0:02:02.797 Porovnáme tedy aktuální počítadlo[br]s celkovým počtem věcí v poli. 0:02:03.807,0:02:06.898 A uvnitř cyklu, tam kde používáme[br]textové příkazy, 0:02:06.898,0:02:11.773 napíšeme textový příkaz myFriends,[br]akorát místo čísla napíšeme "friendNum". 0:02:11.773,0:02:14.342 FriendNum totiž představuje[br]aktuální číslo. 0:02:14.469,0:02:17.902 Pro teď určíme jen jednu pozici. 0:02:18.172,0:02:22.032 Náš kód momentálně produkuje[br]chybu s nekonečným cyklem. 0:02:22.032,0:02:25.553 A to kvůli tomu, že jsme [br]ohledně friendNum nic nezměnili. 0:02:25.553,0:02:30.012 Musíme friendNum pokaždé zvyšovat,[br]jinak pojede smyčka donekonečna. 0:02:30.012,0:02:32.022 To kvůli tomu, že by[br]to bylo vždy true. 0:02:32.022,0:02:36.133 Něco se stalo, teď [br]zakomentuji starý kód. 0:02:36.133,0:02:38.323 Tím pádem můžu vidět,[br]co se to vlastně stalo. 0:02:38.323,0:02:43.543 Takže jsme zobrazili všechna jména,[br]jsou ale všechna naházena přes sebe. 0:02:43.543,0:02:45.494 Musíme změnit polohu y. 0:02:45.506,0:02:49.235 Napíšeme friendNum krát 30. 0:02:49.888,0:02:53.069 Je to sice fajn, ale Sophia se[br]teď nachází mimo obrazovku. 0:02:53.069,0:02:55.306 A pokud to zjistí,[br]tak ji to moc nepotěší. 0:02:55.306,0:02:59.588 Pojďme k tomu přidat 30,[br]čímž je všechny posuneme o 30. 0:02:59.588,0:03:03.931 Pěkné, teď máme cyklus[br]zobrazující naše pole. 0:03:04.363,0:03:07.129 A to znamená, že kdybychom[br]měli více lidí, jako Ohnoes Guy, 0:03:07.129,0:03:11.879 nebo dokonce Sala, z kterého přidáním[br]do pole udělám svého kamaráda. 0:03:12.191,0:03:14.232 A teď je můj kámoš. 0:03:14.232,0:03:18.121 Jak vidíte, nové kamarády to[br]zobrazuje automaticky, 0:03:18.121,0:03:20.756 protože se to pokaždé[br]přidá do celého pole. 0:03:21.005,0:03:24.185 Náš starý kód můžeme smazat,[br]už ho nebudeme potřebovat. 0:03:24.185,0:03:27.886 Pojďme si teď kód projít[br]a zopakovat si, jak vlastně funguje. 0:03:27.886,0:03:31.015 Začínáme s proměnnou friendNum[br]rovné číslu 0. 0:03:31.458,0:03:34.216 Zkontrolujeme, zda je friendNum[br]menší než aktuální délka. 0:03:34.216,0:03:36.856 Takže si to představíme a vidíme, [br]že 0 je méně než 6. 0:03:36.856,0:03:37.856 To je pravdivé. 0:03:37.856,0:03:41.940 Poté jdeme sem a napíšeme:[br]text(myFriends[friendNum]...) 0:03:41.940,0:03:44.438 Poprvé by to tedy bylo:[br]myFriends[0]. 0:03:44.612,0:03:47.378 Dále následuje: [br]30 plus 0 krát 30. 0:03:47.378,0:03:52.868 Čímž se zajistí vyobrazení [br]Sophie na pozicích 10 a 30. 0:03:53.771,0:03:56.220 Poté máme friendNum++,[br]čili se hodnota stává 1. 0:03:56.220,0:03:59.300 Poté se cyklus opakuje a ptá se:[br]je číslo 1 menší než délka pole? 0:03:59.300,0:04:00.300 Ano, je. 0:04:00.300,0:04:02.341 A cyklus běží a běží. 0:04:02.341,0:04:05.419 A potom se dostaneme k Salovi. 0:04:05.419,0:04:10.952 Sal je šestým prvkem v poli,[br]má ale index 5 (kvůli začátku na 0). 0:04:10.952,0:04:12.803 Je 5 méně než 6? 0:04:12.803,0:04:13.803 Ano, je. 0:04:13.803,0:04:18.602 Zobrazuje to kamaráda 5[br]a poté se hodnota stává 6. 0:04:18.602,0:04:20.451 A je 6 méně než 6? 0:04:20.451,0:04:21.828 Ne, není, je to rovno. 0:04:21.828,0:04:23.658 Podmínka bude [br]tedy nepravdivá (false). 0:04:23.658,0:04:25.388 Nikdy se tedy [br]nezobrazí šestý prvek. 0:04:25.388,0:04:29.067 A to je dobře, protože v[br]indexu 6 nic není. 0:04:29.067,0:04:33.248 Šestý element je, ale [br]index 6 nic neobsahuje. 0:04:33.248,0:04:37.559 Může to být celkem matoucí,[br]nejdřív je to 0, pak 1 a pak další. 0:04:37.559,0:04:39.028 Naučíte se to. 0:04:39.587,0:04:41.927 To je tedy náš cyklus. 0:04:41.927,0:04:45.008 Pokud chcete,[br]můžete klidně použít cyklus for. 0:04:45.008,0:04:46.720 V případě, že [br]preferuje cyklus for. 0:04:46.781,0:04:54.271 Pro for cyklus napíšeme[br]for(var FriendNum = 0) a podmínku. 0:04:54.271,0:05:01.241 FriendNum je méně než myFriends.length,[br]poté máme přírůstek friendNum++. 0:05:01.241,0:05:06.612 A do vnitřku for cyklu[br]vložíme tento řádek kódu. 0:05:06.612,0:05:11.647 Změním polohu x a jak vidíte,[br]dělá to úplně tu samou věc. 0:05:12.364,0:05:14.234 Takže je na vás,[br]který z nich použijete. 0:05:14.234,0:05:17.094 Důležité je, že použijete cyklus[br]v kombinaci s vaším polem. 0:05:17.094,0:05:19.497 Učiní vás to opravdu mocnými.