WEBVTT 00:00:00.981 --> 00:00:03.298 Tak jsme zpátky s naším programem. 00:00:03.298 --> 00:00:05.575 Ten používá funkci k malování čtyř Winstonů. 00:00:05.575 --> 00:00:07.156 Změnila jsem ho trošku. 00:00:07.156 --> 00:00:09.486 Nyní ukazuje skutečný věk v určitém bodě života. 00:00:09.486 --> 00:00:10.737 Brzy uvidíte proč. 00:00:11.377 --> 00:00:13.549 Nejdříve Vám musím něco říct o Winstonovi. 00:00:13.549 --> 00:00:15.901 Winston má závislost na koblihách. 00:00:15.901 --> 00:00:18.437 Jí je 3x denně. 00:00:18.437 --> 00:00:21.333 Pravděpodobně díky tomu je jeho obličej tak velký a žlutý. 00:00:21.703 --> 00:00:25.311 Jak varovat Winstona, že jsou pro něj koblihy špatné? 00:00:25.311 --> 00:00:27.073 Musíme tento program trochu upravit. 00:00:27.073 --> 00:00:31.755 A to tak, aby ukázal kolik koblih snědl v každém bodě jeho života. 00:00:32.095 --> 00:00:45.873 Například, když mu byly dva roky, což znamená, že jich snědl 3x365x2. 00:00:45.873 --> 00:00:50.330 Zobrazíme si to pod tímto nadpisem. 00:00:50.330 --> 00:00:53.945 Dva tisíce koblih, to je hodně koblih za dva roky. 00:00:53.945 --> 00:01:02.452 Nyní mu je 14 let, podívejme, 3 krát 365 krát 14. 00:01:04.032 --> 00:01:08.446 Správně, to je 15 000 koblih. 00:01:08.446 --> 00:01:12.620 Mohli bychom nadále takto počítat, ale všimněte si určitého vzoru. 00:01:13.150 --> 00:01:20.416 Opakuji stále můj výpočet a jedinou věc, kterou měním je počet let. 00:01:20.416 --> 00:01:22.872 Kdykoliv vidím opakující se kód, jako je tento. 00:01:22.872 --> 00:01:28.348 Pomyslím si, "Hm, mohu z toho udělat funkci?" 00:01:28.348 --> 00:01:31.835 Ano určitě můžeme. Tak pojďme na to. 00:01:32.795 --> 00:01:34.416 Definuji zde moji funkci. 00:01:34.416 --> 00:01:40.377 Nazvu ji calcTotalDonuts = function. 00:01:40.917 --> 00:01:44.228 Dáme jí jeden parametr a to počet let. 00:01:44.228 --> 00:01:46.022 Je to totiž jediná věc, jenž měníme. 00:01:46.022 --> 00:01:48.566 A to pokaždé, když děláme tento výpočet. 00:01:49.316 --> 00:01:52.878 Uvnitř provedeme výpočet. 00:01:52.878 --> 00:01:59.600 Tento výpočet uložíme do proměnné, takže to bude 3x 365x numYears. 00:02:00.680 --> 00:02:03.099 Správně, nyní máme funkci. 00:02:03.099 --> 00:02:12.738 Nahradím zde tento výraz výrazem calcTotalDonuts s parametrem 2. 00:02:12.738 --> 00:02:16.877 Dobře, nyní nevidíme žádný celkový počet. 00:02:17.227 --> 00:02:19.092 Co se stalo? 00:02:19.092 --> 00:02:22.616 Naše funkce zde spočítala celkový počet. 00:02:23.096 --> 00:02:25.640 Problém je, že o tom nikomu neřekla. 00:02:26.050 --> 00:02:30.367 Je to jako, když se Vás učitelka na něco zeptá. 00:02:30.367 --> 00:02:31.744 A odpověď je u Vás v hlavě. 00:02:31.744 --> 00:02:33.652 Prostě se stydíte odpovědět. 00:02:33.652 --> 00:02:36.998 Odpověděli jste, ale Vaše učitelka se o tom nikdy nedozví. 00:02:37.499 --> 00:02:45.170 Pokud má funkce něco vracet, tak musí mít definovanou návratovou hodnotu. 00:02:45.710 --> 00:02:51.568 K definování této hodnoty stačí napsat return a to co chceme ukázat. 00:02:51.568 --> 00:02:55.138 Může to být proměnná nebo hodnota nějakého výrazu. 00:02:55.138 --> 00:02:57.749 Pro náš příklad budeme vracet totalDonuts. 00:02:57.749 --> 00:03:01.540 Tedy kdokoliv zavolá tuto funkci, dostane tuto odpověď. 00:03:01.880 --> 00:03:04.421 Nyní se již naše hodnota zobrazuje. 00:03:04.771 --> 00:03:06.651 Můžeme naší funkci zkrátit. 00:03:06.651 --> 00:03:08.341 Nemusíme ji ukládat do proměnné. 00:03:08.341 --> 00:03:10.051 Celý výraz vložíme do return. 00:03:10.051 --> 00:03:14.268 Nyní je to na jednom řádku. 00:03:15.068 --> 00:03:17.166 Dále spočítáme celkový počet koblih. 00:03:17.744 --> 00:03:23.452 Uděláme to pomocí zavolání této funkce s počtem let. 00:03:24.212 --> 00:03:36.366 Podívejte, je to calcTotalDonuts(25), poté calcTotalDonuts(65). 00:03:36.366 --> 00:03:45.136 Tedy pokud by mu bylo 65 let, tak by snědl 70 000 koblih a to je dost. 00:03:45.136 --> 00:03:48.051 Nemyslím si, že by toho byl Winston schopen. 00:03:48.051 --> 00:03:53.181 Nyní je to funkce a je snadné měnit její části. 00:03:53.181 --> 00:03:55.357 Například kdyby to viděl Winston a řekl: 00:03:55.357 --> 00:03:58.865 "Páni, to je až moc. Co kdybych jedl jednu denně?" 00:03:58.865 --> 00:04:02.242 Dobře, stačí změnit pouze jedno číslo. 00:04:02.732 --> 00:04:04.329 Tím se vše změní. 00:04:04.329 --> 00:04:07.561 Výsledek je 23 000. Stále dost. Možná by Winston řekl: 00:04:07.561 --> 00:04:10.773 "Dobře, dobře, tak co kdybych jedl jen jednu týdně?" 00:04:10.773 --> 00:04:12.477 Ano, to je již rozumné. 00:04:12.477 --> 00:04:18.103 Stačí jen změnit 365 na 50, protože rok má 50 týdnů. 00:04:18.103 --> 00:04:22.802 Je to lepší? 3000 koblih se zdá již jako rozumné množství. 00:04:22.802 --> 00:04:30.821 Takže jak vidíte s funkcemi a návratovými hodnotami můžeme zachránit kód a životy.