Wracamy do programu
z tablicą moich znajomych.
Coś mnie tu irytuje.
Dodając znajomego, muszę też
dodać nowe polecenie „text”.
Powiedzmy, że dodaję Winstona.
Nie pokazuje się automatycznie.
Musiałabym napisać:
'text(myFriends[3]',
zmienić pozycję „y”
i dopiero zobaczymy Winstona.
Za dużo pracy!
Chcę, żeby za każdym razem,
gdy kogoś dodaję,
polecenie „text” pisało się samo.
Pamiętacie pętle?
To świetny sposób, żeby wiele razy
powtarzać fragment programu.
Np. gdybyśmy chcieli mieć
szereg drzew lub grupę baloników.
Okazuje się,
że pętle to też dobry sposób,
by powtarzać fragment programu
przy każdym elemencie tablicy.
Będziecie używać pętli
przy każdym użyciu tablicy.
Dobrze współpracują.
Za pomocą pętli pokażę
imiona znajomych,
zamiast pisać te wszystkie
polecenia „text”.
Zacznijmy od trzech pytań
związanych z pętlą.
1.: „Co chcę powtarzać?”.
Zobaczmy. Co się powtarza?
Polecenie „text”.
Co chcę zawsze zmieniać?
Spójrzmy, co się zmienia.
Pozycja „y” i indeks, tak?
Numer znajomego
oraz pozycja „y”.
A jak długo mamy to powtarzać?
Aż skończą się znajomi.
Wiemy, czego chcemy,
możemy więc zrobić pętlę.
Najpierw licznik,
by wiedzieć, gdzie jesteśmy.
Powiemy: 'var friendNum = 0;'
Zaczniemy od zera,
bo pamiętajcie, to jest pierwszy
element tablicy, nie 1.
Teraz pętla warunkowa.
Napiszemy: 'while(friendNum...
< my friends.length)'.
Porównamy licznik
z łączną liczbą rzeczy w tablicy.
Wewnątrz pętli użyjemy
polecenia „text”.
Piszemy: 'text(myFriends['.
Zamiast liczby wstawimy 'friendNum',
bo oznacza bieżącą liczbę.
Na razie wprowadzimy jedną pozycję.
I mamy komunikat o błędzie
„pętla nieskończona”,
bo nie zmieniliśmy nic
we „friendNum”.
Zawsze zwiększamy „friendNum”.
Inaczej pętla się nie skończy,
bo ten warunek
zawsze jest prawdziwy.
Coś się zdarzyło.
Porzucę stary program,
prześledzimy to.
Wyświetliły się wszystkie imiona,
ale jedne na drugich.
Trzeba zmienić pozycję „y”.
Powiedzmy: 'friendNum*30'.
Dobrze, ale Sophia zniknęła.
Jeśli się dowie,
nie będzie zadowolona.
Dodajmy do tego 30.
Teraz wszystkie się rozsuną.
Pięknie! Dzięki pętli
pokazuje się tablica.
Jeśli dodamy więcej ludzi,
np. faceta „O, nie!” lub Sala...
Dodam go do tablicy
i będzie moim znajomym.
Świetnie! To mój kumpel!
Jak widać, program automatycznie
pokazuje nowych znajomych,
bo zawsze przechodzi
przez całą tablicę.
Możemy skasować stary program.
Już go nie potrzebujemy.
Przejrzyjmy ten program
i zobaczmy, co robi.
Zaczynamy od „friendNum”
równego zero.
Sprawdzamy, czy „friendNum”
jest mniejsze niż bieżąca długość.
Zero jest mniejsze od sześciu.
To prawda.
Wejdźmy tutaj i napiszmy:
„text my friends friendNum”.
To będzie zero. Pierwszy punkt.
A potem 30 plus zero razy 30.
Program pokazuje Sophię
w pozycji 10-30.
Właśnie tak. Później:
- „friendNum++”. I robi się 1.
Program pyta: „Czy 1 to mniej
niż myFriends.length?”. Tak.
I działa dalej, i dalej...
W końcu dochodzimy do Sala.
Jest szóstym elementem tablicy,
ale ma nr 5, bo zaczynamy od zera.
Czy 5 jest mniejsze od 6? Tak.
Program pokazuje „myFriends5”.
Dalej jest 6. Pytamy:
„Czy 6 jest mniejsze od 6?”.
Nie: jest równe.
To fałsz. Program nie pokaże
szóstego elementu.
I dobrze, bo żaden nie ma
takiego numeru.
Jest szósty element,
ale numeru szóstego nie ma.
To zero i jedynka mogą wam mącić
w głowach, ale przywykniecie.
To jest nasza pętla.
Możecie też używać pętli FOR,
jeśli takie wolicie.
Wtedy powiemy tylko:
„for' i 'var friendNum = 0;”
i podamy warunek:
„friendNum < myFriends.length”
oraz zmianę: 'friendNum++'
Wewnątrz pętli FOR
umieścimy ten fragment programu.
Zmienię „x”, żebyście zobaczyli,
że program robi to samo.
Używajcie do tablic pętli,
bo to wam da wielką moc!