Return to Video

Zmienne lokalne i globalne

  • 0:01 - 0:03
    Opanowaliście już podstawy funkcji,
  • 0:03 - 0:07
    a teraz pomówmy o czymś
    trochę trudniejszym:
  • 0:07 - 0:11
    o różnicy między zmiennymi
    lokalnymi i globalnymi.
  • 0:11 - 0:14
    Może nie znacie tych terminów.
  • 0:14 - 0:16
    Zacznijmy od przykładu.
  • 0:16 - 0:20
    Napisałam program, który pokaże,
    ile cali urosłam w dzieciństwie.
  • 0:20 - 0:24
    Ludzie rosną w różnym tempie.
    Wymyśliłam funkcję, „calcInches”,
  • 0:25 - 0:29
    gdzie wprowadzam wiek startowy
    i końcowy oraz cale rocznie.
  • 0:29 - 0:35
    Program oblicza, ile urosłam
    w danym okresie
  • 0:35 - 0:37
    i podaje wynik.
  • 0:37 - 0:40
    Tu jest okres od 0 do 8 lat.
  • 0:40 - 0:45
    Przywołuję „calcInches”
    i wprowadzam 0, 8 oraz 2,5.
  • 0:45 - 0:48
    Ponieważ rosłam
    jakieś 2,5 cala rocznie.
  • 0:48 - 0:52
    Program oblicza i podaje wynik: 20.
  • 0:52 - 0:58
    Teraz okres od 8. do 16. roku.
    Wprowadzam 8, 16 i 2,
  • 0:58 - 1:02
    bo wtedy tak szybko nie rosłam.
    Wynik: 16.
  • 1:02 - 1:05
    Świetnie, ale chcę pokazać,
  • 1:05 - 1:09
    o ile cali urosłam
    w całym dzieciństwie.
  • 1:09 - 1:11
    Jak to zrobić?
  • 1:12 - 1:15
    Spojrzę na program i pomyślę:
  • 1:15 - 1:17
    „Jakie mam tu wartości?”.
  • 1:17 - 1:20
    Czy coś może pokazywać
    całkowitą liczbę cali?
  • 1:21 - 1:24
    Mam zmienną „totalInches”
    (całkowita liczba cali)
  • 1:24 - 1:26
    wewnątrz funkcji „calcInches”,
  • 1:26 - 1:30
    więc mogę zobaczyć,
    co tu jest. Zacznę tutaj.
  • 1:31 - 1:36
    Wpiszmy „totalInches, 10, 200”
    i umieśćmy to na dole.
  • 1:36 - 1:39
    Co mamy?
  • 1:39 - 1:41
    Pokazał się ludzik „O, nie!”.
  • 1:41 - 1:43
    Mówi, że jest problem:
  • 1:43 - 1:45
    „totalInches” niezdefiniowane!
  • 1:45 - 1:50
    Dziwne. Przecież to definiowaliśmy.
  • 1:50 - 1:52
    „var totalInches =”.
  • 1:52 - 1:54
    Kłopot polega na tym,
    że określiliśmy
  • 1:55 - 1:59
    „totalInches” wewnątrz funkcji.
    W tym wierszu.
  • 2:00 - 2:02
    Zmienna, którą określimy w funkcji,
  • 2:02 - 2:04
    to tzw. zmienna lokalna.
  • 2:05 - 2:09
    Żyje tylko w tej funkcji.
  • 2:09 - 2:12
    Program poza funkcją
  • 2:12 - 2:15
    nie widzi zmiennych lokalnych
    wewnątrz niej.
  • 2:15 - 2:18
    Widzi tylko to,
    co zostanie zwrócone.
  • 2:18 - 2:21
    Widzi tę wartość, ale nie zmienną.
  • 2:21 - 2:25
    Gdy próbujemy użyć
    „totalInches” poza funkcją,
  • 2:25 - 2:27
    program nie wie, co to jest i mówi:
  • 2:27 - 2:31
    „Nie znam tej zmiennej.
    Nie jest zdefiniowana, nie pokażę jej”.
  • 2:32 - 2:37
    Jest sposób, żeby program
    na zewnątrz widział zmienną.
  • 2:37 - 2:43
    Robimy ze zmiennej lokalnej
    - globalną.
  • 2:43 - 2:47
    Musimy przesunąć definicję
    poza funkcję,
  • 2:47 - 2:50
    do zakresu globalnego.
  • 2:51 - 2:55
    Teraz, wewnątrz funkcji,
  • 2:55 - 2:58
    zmieniamy tylko wartość.
    Nie określamy funkcji.
  • 2:58 - 3:03
    Jak widać, tu mówi:
    „całkowity wzrost - 16”.
  • 3:03 - 3:07
    Program znalazł zmienną,
    bo stała się globalna.
  • 3:07 - 3:10
    Ale nie jest to wartość,
    której szukamy.
  • 3:10 - 3:11
    Tylko wartość najświeższa.
  • 3:11 - 3:14
    Bo zawsze, gdy przywołujemy funkcję,
  • 3:14 - 3:18
    stosuje „totalInches”
    do tego, co akurat liczy.
  • 3:19 - 3:22
    Chcemy więc mieć nową zmienną,
  • 3:22 - 3:25
    w której będzie się zawierać
    tylko całkowita suma
  • 3:25 - 3:29
    zwiększająca się
    przy każdym obliczaniu.
  • 3:29 - 3:33
    Zamieńmy to z powrotem
    na zmienną lokalną,
  • 3:34 - 3:38
    zróbmy nową zmienną globalną
    o nazwie „lifeInches”
  • 3:38 - 3:40
    i zacznijmy od zera.
  • 3:41 - 3:45
    Wewnątrz funkcji
    dodamy coś do zmiennej globalnej
  • 3:45 - 3:49
    pisząc: „lifeInches += totalInches”.
  • 3:49 - 3:53
    Dodamy sumę obliczoną
    przy każdym przywołaniu funkcji.
  • 3:53 - 3:56
    Dodamy ją do zmiennej globalnej
    „lifeInches”.
  • 3:56 - 4:00
    I wynik wyświetli się u dołu.
  • 4:00 - 4:03
    Jest! Całkowity przyrost.
  • 4:03 - 4:06
    Nie tyle mam wzrostu.
    Jestem wyższa.
  • 4:07 - 4:11
    Bo rodzimy się mając więcej
    niż 0 cali długości.
  • 4:11 - 4:14
    Żeby uzyskać całość, zacznę od 20.
  • 4:14 - 4:17
    I tyle mam wzrostu.
  • 4:17 - 4:19
    No dobrze, powtórzmy.
  • 4:19 - 4:22
    „TotalInches” to zmienna lokalna.
  • 4:22 - 4:25
    Wiemy to, bo widzimy ją
  • 4:25 - 4:28
    wewnątrz tej funkcji,
    a nie poza nią.
  • 4:29 - 4:31
    Tzn., że ten kod na zewnątrz
  • 4:31 - 4:35
    nie wie o zmiennej „totalInches”.
  • 4:35 - 4:38
    A „lifeInches”
    to tzw. zmienna globalna.
  • 4:38 - 4:41
    Wiemy to, bo widzimy ją
    poza funkcjami,
  • 4:41 - 4:43
    w naszym zakresie globalnym.
  • 4:44 - 4:47
    Pamiętajcie o tym, określając
    funkcje i zmienne.
  • 4:47 - 4:52
    I pomyślcie, czy chcecie mieć zmienną
    lokalną tylko dla swojej funkcji,
  • 4:52 - 4:55
    czy globalną dla całego programu.
  • 4:55 - 4:57
    Nie szkodzi,
    że nie do końca rozumiecie.
  • 4:58 - 5:02
    To jedno z najtrudniejszych pojęć
    w programowaniu, głównie w JavaScript.
  • 5:02 - 5:05
    Ćwiczcie, a będzie wam wychodzić
    coraz lepiej!
Title:
Zmienne lokalne i globalne
Description:

To jest nagranie ekranu z naszego interaktywnego wprowadzenia do kodowania, zrobione żeby ułatwić pracę nad napisami i tłumaczeniami. Lepiej obejrzeć właściwe wprowadzenie tutaj:
https://pl.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
05:06

Polish subtitles

Revisions