1 00:00:00,981 --> 00:00:03,298 Tak jsme zpátky s naším programem. 2 00:00:03,298 --> 00:00:05,575 Ten používá funkci k malování čtyř Winstonů. 3 00:00:05,575 --> 00:00:07,156 Změnila jsem ho trošku. 4 00:00:07,156 --> 00:00:09,486 Nyní ukazuje skutečný věk v určitém bodě života. 5 00:00:09,486 --> 00:00:10,737 Brzy uvidíte proč. 6 00:00:11,377 --> 00:00:13,549 Nejdříve Vám musím něco říct o Winstonovi. 7 00:00:13,549 --> 00:00:15,901 Winston má závislost na koblihách. 8 00:00:15,901 --> 00:00:18,437 Jí je 3x denně. 9 00:00:18,437 --> 00:00:21,333 Pravděpodobně díky tomu je jeho obličej tak velký a žlutý. 10 00:00:21,703 --> 00:00:25,311 Jak varovat Winstona, že jsou pro něj koblihy špatné? 11 00:00:25,311 --> 00:00:27,073 Musíme tento program trochu upravit. 12 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. 13 00:00:32,095 --> 00:00:45,873 Například, když mu byly dva roky, což znamená, že jich snědl 3x365x2. 14 00:00:45,873 --> 00:00:50,330 Zobrazíme si to pod tímto nadpisem. 15 00:00:50,330 --> 00:00:53,945 Dva tisíce koblih, to je hodně koblih za dva roky. 16 00:00:53,945 --> 00:01:02,452 Nyní mu je 14 let, podívejme, 3 krát 365 krát 14. 17 00:01:04,032 --> 00:01:08,446 Správně, to je 15 000 koblih. 18 00:01:08,446 --> 00:01:12,620 Mohli bychom nadále takto počítat, ale všimněte si určitého vzoru. 19 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. 20 00:01:20,416 --> 00:01:22,872 Kdykoliv vidím opakující se kód, jako je tento. 21 00:01:22,872 --> 00:01:28,348 Pomyslím si, "Hm, mohu z toho udělat funkci?" 22 00:01:28,348 --> 00:01:31,835 Ano určitě můžeme. Tak pojďme na to. 23 00:01:32,795 --> 00:01:34,416 Definuji zde moji funkci. 24 00:01:34,416 --> 00:01:40,377 Nazvu ji calcTotalDonuts = function. 25 00:01:40,917 --> 00:01:44,228 Dáme jí jeden parametr a to počet let. 26 00:01:44,228 --> 00:01:46,022 Je to totiž jediná věc, jenž měníme. 27 00:01:46,022 --> 00:01:48,566 A to pokaždé, když děláme tento výpočet. 28 00:01:49,316 --> 00:01:52,878 Uvnitř provedeme výpočet. 29 00:01:52,878 --> 00:01:59,600 Tento výpočet uložíme do proměnné, takže to bude 3x 365x numYears. 30 00:02:00,680 --> 00:02:03,099 Správně, nyní máme funkci. 31 00:02:03,099 --> 00:02:12,738 Nahradím zde tento výraz výrazem calcTotalDonuts s parametrem 2. 32 00:02:12,738 --> 00:02:16,877 Dobře, nyní nevidíme žádný celkový počet. 33 00:02:17,227 --> 00:02:19,092 Co se stalo? 34 00:02:19,092 --> 00:02:22,616 Naše funkce zde spočítala celkový počet. 35 00:02:23,096 --> 00:02:25,640 Problém je, že o tom nikomu neřekla. 36 00:02:26,050 --> 00:02:30,367 Je to jako, když se Vás učitelka na něco zeptá. 37 00:02:30,367 --> 00:02:31,744 A odpověď je u Vás v hlavě. 38 00:02:31,744 --> 00:02:33,652 Prostě se stydíte odpovědět. 39 00:02:33,652 --> 00:02:36,998 Odpověděli jste, ale Vaše učitelka se o tom nikdy nedozví. 40 00:02:37,499 --> 00:02:45,170 Pokud má funkce něco vracet, tak musí mít definovanou návratovou hodnotu. 41 00:02:45,710 --> 00:02:51,568 K definování této hodnoty stačí napsat return a to co chceme ukázat. 42 00:02:51,568 --> 00:02:55,138 Může to být proměnná nebo hodnota nějakého výrazu. 43 00:02:55,138 --> 00:02:57,749 Pro náš příklad budeme vracet totalDonuts. 44 00:02:57,749 --> 00:03:01,540 Tedy kdokoliv zavolá tuto funkci, dostane tuto odpověď. 45 00:03:01,880 --> 00:03:04,421 Nyní se již naše hodnota zobrazuje. 46 00:03:04,771 --> 00:03:06,651 Můžeme naší funkci zkrátit. 47 00:03:06,651 --> 00:03:08,341 Nemusíme ji ukládat do proměnné. 48 00:03:08,341 --> 00:03:10,051 Celý výraz vložíme do return. 49 00:03:10,051 --> 00:03:14,268 Nyní je to na jednom řádku. 50 00:03:15,068 --> 00:03:17,166 Dále spočítáme celkový počet koblih. 51 00:03:17,744 --> 00:03:23,452 Uděláme to pomocí zavolání této funkce s počtem let. 52 00:03:24,212 --> 00:03:36,366 Podívejte, je to calcTotalDonuts(25), poté calcTotalDonuts(65). 53 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. 54 00:03:45,136 --> 00:03:48,051 Nemyslím si, že by toho byl Winston schopen. 55 00:03:48,051 --> 00:03:53,181 Nyní je to funkce a je snadné měnit její části. 56 00:03:53,181 --> 00:03:55,357 Například kdyby to viděl Winston a řekl: 57 00:03:55,357 --> 00:03:58,865 "Páni, to je až moc. Co kdybych jedl jednu denně?" 58 00:03:58,865 --> 00:04:02,242 Dobře, stačí změnit pouze jedno číslo. 59 00:04:02,732 --> 00:04:04,329 Tím se vše změní. 60 00:04:04,329 --> 00:04:07,561 Výsledek je 23 000. Stále dost. Možná by Winston řekl: 61 00:04:07,561 --> 00:04:10,773 "Dobře, dobře, tak co kdybych jedl jen jednu týdně?" 62 00:04:10,773 --> 00:04:12,477 Ano, to je již rozumné. 63 00:04:12,477 --> 00:04:18,103 Stačí jen změnit 365 na 50, protože rok má 50 týdnů. 64 00:04:18,103 --> 00:04:22,802 Je to lepší? 3000 koblih se zdá již jako rozumné množství. 65 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.