WEBVTT 00:00:00.981 --> 00:00:03.708 Wracamy do programu, który wykorzystuje funkcję 00:00:03.808 --> 00:00:05.570 i rysuje Winstona cztery razy. 00:00:05.672 --> 00:00:09.331 Zmieniłam to tak, żeby pokazać jego wiek w każdym etapie życia. 00:00:09.431 --> 00:00:11.288 Niedługo zobaczycie, dlaczego. 00:00:11.388 --> 00:00:13.583 Najpierw powiem wam coś o Winstonie. 00:00:13.683 --> 00:00:16.084 Jest uzależniony od pączków. 00:00:16.184 --> 00:00:18.436 Je trzy pączki dziennie. 00:00:18.536 --> 00:00:21.640 Pewnie dlatego ma tak dużą i żółtą twarz. 00:00:21.740 --> 00:00:25.123 Żeby mu powiedzieć, jak szkodliwe są pączki, 00:00:25.223 --> 00:00:26.713 zmienię program 00:00:26.813 --> 00:00:29.582 i pokażę, ile zjadł pączków 00:00:29.682 --> 00:00:31.466 w różnych etapach życia. 00:00:31.566 --> 00:00:35.503 Np. gdy miał 2 lata... 00:00:35.603 --> 00:00:37.291 to zjadł już... 00:00:37.391 --> 00:00:41.470 3 razy 365 razy 2. 00:00:41.570 --> 00:00:45.745 3 pączki dziennie razy 365 dni razy 2 lata. 00:00:45.873 --> 00:00:49.342 Wyświetlimy to pod nagłówkiem. 00:00:49.442 --> 00:00:50.786 Dwa tysiące pączków! 00:00:50.886 --> 00:00:53.452 Dużo jak na dwulatka! 00:00:54.334 --> 00:00:56.749 Tu ma 14 lat. 00:00:56.849 --> 00:01:02.554 Zjadł 3 razy 365 razy 14. 00:01:04.226 --> 00:01:07.581 To 15 tysięcy pączków. 00:01:08.486 --> 00:01:13.073 Mogłabym liczyć dalej, ale dostrzegam schemat. 00:01:13.173 --> 00:01:16.416 Powtarzam obliczenia 00:01:16.516 --> 00:01:20.550 i zmieniam tylko jedno: liczbę lat. 00:01:20.650 --> 00:01:22.988 Gdy widzę taki powtarzalny kod, 00:01:23.088 --> 00:01:27.724 myślę: „Czy mogłabym zrobić z tego funkcję?”. 00:01:27.824 --> 00:01:31.625 Tak, to możliwe. Zróbmy więc to teraz. 00:01:32.786 --> 00:01:35.457 Zdefiniuję funkcję. Nazwę ją 00:01:35.557 --> 00:01:40.426 „calcTotalDonuts = function”. 00:01:40.526 --> 00:01:44.184 Będzie przyjmować jeden parametr, liczbę lat. 00:01:44.284 --> 00:01:48.204 Bo tylko to zmieniamy w tych obliczeniach. 00:01:49.203 --> 00:01:52.918 Obliczymy to wewnątrz 00:01:53.018 --> 00:01:55.735 i zachowamy w zmiennej. 00:01:55.835 --> 00:02:00.581 Mamy: 3 razy 365 razy „numYears” (liczba lat). 00:02:00.681 --> 00:02:03.228 Gdy już mamy tę funkcję, 00:02:03.328 --> 00:02:06.246 zastąpię to wyrażenie 00:02:06.346 --> 00:02:09.799 przywołaniem funkcji „calcTotalDonuts”, 00:02:09.899 --> 00:02:11.471 i wprowadzę „2”. 00:02:12.864 --> 00:02:16.974 No i nie widzimy żadnej sumy. 00:02:17.074 --> 00:02:19.081 Co się stało? 00:02:19.181 --> 00:02:23.011 Nasza funkcja obliczyła sumę, tutaj, 00:02:23.111 --> 00:02:26.216 ale nikomu o niej nie powiedziała. 00:02:26.316 --> 00:02:30.465 Jakby nauczyciel wywołał was do odpowiedzi, 00:02:30.565 --> 00:02:33.600 a wy udzielacie jej w głowie, bo głośno się wstydzicie. 00:02:33.700 --> 00:02:37.431 Uczyliście się, a nauczyciel się o tym nie dowie. 00:02:37.531 --> 00:02:41.216 Jeśli chcemy, by funkcja pokazywała wartość, 00:02:41.316 --> 00:02:45.670 musi ona tę wartość zwrócić. 00:02:45.770 --> 00:02:49.714 Żeby funkcja zwróciła wartość, musimy wpisać „return”, 00:02:49.814 --> 00:02:52.315 i określić, co. 00:02:52.415 --> 00:02:55.240 Zmienną, wartość, wyrażenie... 00:02:55.340 --> 00:02:57.679 Tu napiszemy: „return totalDonuts”. 00:02:57.779 --> 00:03:02.067 Kto przywołał tę funkcję, uzyska odpowiedź. 00:03:02.167 --> 00:03:04.854 I wartość już widać! 00:03:04.954 --> 00:03:06.943 Możemy skrócić funkcję, 00:03:07.043 --> 00:03:10.426 nie trzymać jej w zmiennej. Bierzemy to wyrażenie, 00:03:10.526 --> 00:03:15.303 umieszczamy je w „zwróć” i mamy jedną linijkę. Ładnie! 00:03:15.403 --> 00:03:20.344 Możemy teraz obliczyć, ile pączków zjadł w każdym etapie życia, 00:03:20.444 --> 00:03:23.615 przywołując tę funkcję i wprowadzając liczbę lat. 00:03:25.752 --> 00:03:28.770 Mamy więc „calcTotalDonuts(25)”, 00:03:28.870 --> 00:03:34.552 umieśćmy to... „calcTotalDonuts(65)”... 00:03:36.433 --> 00:03:40.473 Jeśli dożyje 65 lat, 00:03:40.573 --> 00:03:45.071 to łącznie zje 70 tysięcy pączków. Dużo! 00:03:45.171 --> 00:03:47.648 Chyba nie da rady. 00:03:47.748 --> 00:03:50.335 Gdy już zrobiliśmy z tego funkcję, 00:03:50.435 --> 00:03:53.198 będziemy mogli łatwo zmieniać jej części. 00:03:53.298 --> 00:03:55.357 Winston to widzi i mówi: 00:03:55.457 --> 00:03:59.119 „Dużo! A gdybym jadł jednego pączka dziennie?”. 00:03:59.219 --> 00:04:02.741 Wejdźmy tu, zmieńmy jedną liczbę 00:04:02.841 --> 00:04:04.482 i zmieni się wszystko. 00:04:04.582 --> 00:04:07.338 Jest 23 tysiące. Nadal dużo. 00:04:07.438 --> 00:04:10.447 Winston mówi „Dobrze, może więc jeden tygodniowo?”. 00:04:10.547 --> 00:04:12.540 To już rozsądne. 00:04:12.640 --> 00:04:15.326 Zmieniamy 365 na 50, 00:04:15.426 --> 00:04:17.976 bo rok ma ok. 50 tygodni. 00:04:18.077 --> 00:04:20.481 Tak już lepiej, prawda? 00:04:20.581 --> 00:04:22.849 3 tysiące pączków. To rozsądne. 00:04:22.949 --> 00:04:27.099 Znając funkcje i zwracane wartości 00:04:27.199 --> 00:04:30.979 uratujemy program i życie innych osób!