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!