Tak jsme zpátky s naším programem.
Ten používá funkci k
malování čtyř Winstonů.
Změnila jsem ho trošku.
Nyní ukazuje skutečný věk
v určitém bodě života.
Brzy uvidíte proč.
Nejdříve Vám musím něco
říct o Winstonovi.
Winston má závislost na koblihách.
Jí je 3x denně.
Pravděpodobně díky tomu je jeho
obličej tak velký a žlutý.
Jak varovat Winstona,
že jsou pro něj koblihy špatné?
Musíme tento program trochu upravit.
A to tak, aby ukázal kolik
koblih snědl v každém bodě jeho života.
Například, když mu byly dva roky,
což znamená, že jich snědl 3x365x2.
Zobrazíme si to pod tímto nadpisem.
Dva tisíce koblih, to je hodně koblih
za dva roky.
Nyní mu je 14 let, podívejme,
3 krát 365 krát 14.
Správně, to je 15 000 koblih.
Mohli bychom nadále takto počítat,
ale všimněte si určitého vzoru.
Opakuji stále můj výpočet a jedinou věc,
kterou měním je počet let.
Kdykoliv vidím opakující se kód,
jako je tento.
Pomyslím si,
"Hm, mohu z toho udělat funkci?"
Ano určitě můžeme.
Tak pojďme na to.
Definuji zde moji funkci.
Nazvu ji calcTotalDonuts = function.
Dáme jí jeden parametr a to
počet let.
Je to totiž jediná věc, jenž
měníme.
A to pokaždé, když děláme tento výpočet.
Uvnitř provedeme výpočet.
Tento výpočet uložíme do proměnné,
takže to bude 3x 365x numYears.
Správně, nyní máme funkci.
Nahradím zde tento výraz
výrazem calcTotalDonuts s parametrem 2.
Dobře, nyní nevidíme žádný celkový počet.
Co se stalo?
Naše funkce zde spočítala celkový počet.
Problém je, že o tom nikomu neřekla.
Je to jako, když se Vás učitelka
na něco zeptá.
A odpověď je u Vás v hlavě.
Prostě se stydíte odpovědět.
Odpověděli jste, ale Vaše učitelka
se o tom nikdy nedozví.
Pokud má funkce něco vracet, tak
musí mít definovanou návratovou hodnotu.
K definování této hodnoty
stačí napsat return a to co chceme ukázat.
Může to být proměnná nebo
hodnota nějakého výrazu.
Pro náš příklad budeme vracet
totalDonuts.
Tedy kdokoliv zavolá tuto funkci,
dostane tuto odpověď.
Nyní se již naše hodnota zobrazuje.
Můžeme naší funkci zkrátit.
Nemusíme ji ukládat
do proměnné.
Celý výraz vložíme do return.
Nyní je to na jednom řádku.
Dále spočítáme celkový počet
koblih.
Uděláme to pomocí zavolání této
funkce s počtem let.
Podívejte, je to calcTotalDonuts(25),
poté calcTotalDonuts(65).
Tedy pokud by mu bylo 65 let,
tak by snědl 70 000 koblih a to je dost.
Nemyslím si, že by toho byl
Winston schopen.
Nyní je to funkce a
je snadné měnit její části.
Například kdyby to viděl
Winston a řekl:
"Páni, to je až moc.
Co kdybych jedl jednu denně?"
Dobře, stačí změnit pouze jedno číslo.
Tím se vše změní.
Výsledek je 23 000. Stále dost.
Možná by Winston řekl:
"Dobře, dobře, tak co kdybych jedl
jen jednu týdně?"
Ano, to je již rozumné.
Stačí jen změnit 365 na 50,
protože rok má 50 týdnů.
Je to lepší? 3000 koblih se zdá již jako
rozumné množství.
Takže jak vidíte s funkcemi a návratovými
hodnotami můžeme zachránit kód a životy.