Jeśli widzisz tę wiadomość oznacza to, że mamy problemy z załadowaniem zewnętrznych materiałów na naszej stronie internetowej.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Główna zawartość

Przegląd: Zapętlanie

To jest przegląd tego, co zostało omówione w poradniku na temat pętli.
Gdy piszemy programy, często mamy potrzebę pisania danego fragmentu kodu wiele razy, lub powtarzania go z drobną modyfikacją. Aby oszczędzić sobie pisania całego tego kodu, możemy użyć pętli. JavaScript oferuje dwa rodzaje pętli, pętla while oraz pętla for.
Pętla while daje możliwość powtarzania kodu do momentu, gdy pewien warunek będzie spełniony. Dla przykładu, ta pętla while wyświetla wartość współrzędnej y w (30,y) dopóki y jest mniejsze niż 400. W pętli do wartości y jest dodawana liczba 20 za każdym wykonaniem, tak więc wartość y zaczyna się od 40, po czym wynosi kolejno 60, 80, 120, itd.
var y = 40;
  while (y < 400) {
    text(y, 30, y);
  y += 20;
}
To bardzo ważne, aby warunek w w nawiasie w pewnym momencie przestał być prawdziwy - w przeciwnym wypadku dostaniemy coś, co nazywa się pętlą nieskończoną! Stałoby się tak, gdybyśmy usunęli y +=20, ponieważ y zawsze wynosiłoby 40 i zawsze było mniejsze niż 400, więc program nigdy nie wiedziałby kiedy skończyć swoją pracę.
var y = 40;
while (y < 400) {
  text(y, 30, y);
}
Pętla for jest podobna do pętli while, ale ma bardziej wyspecjalizowaną składnię. Programiści wymyślili pętlę for gdy zdali sobie sprawę, że zawsze robili te same trzy rzeczy - tworzyli zmienne do liczenia przebiegów pętli (tak jak y powyżej), zwiększali je o pewną wartość po czym sprawdzali, czy zmienna ta jest mniejsza od pewnej wartości. Składnia funkcji for ma specjalne miejsca dla każdej z tych trzech rzeczy. Tutaj ta sama pętla przedstawiona jako pętla for:
for (var y = 40; y < 400; y += 20) {
  text(y, 30, y);
}
Pętle mogą być zagnieżdżone. To bardzo częsta praktyka, by zagnieżdżać pętle, szczególnie przy rysunkach dwuwymiarowych, ponieważ pozwala to rysować kształty na podstawie siatki. Gdy zagnieżdżamy pętlę w pętli, mówimy programowi, " zrób to dokładnie X razy, a za każdym razem gdy to robisz, zrób też kolejną rzecz Y razy" Pomyśl o tym jak o rysowaniu siatki - chcemy powiedzieć programowi, aby "utworzył kolumnę 10 razy, a dodatkowo za każdym razem stworzył w niej 15 komórek." Oto jak użyć zagnieżdżania pętli w tym celu:
for (var col = 0; col < 10; col++) {
  for (var row = 0; row < 15; row++) {
    rect(col*20, row*20, 20, 20);
  }
}
Kiedy należy używać pętli for, a kiedy while? To zależy od Was. Wielu programistów woli pętlę for, ponieważ ciężej w nich utworzyć pętlę nieskończoną (ponieważ ciężko jest zapomnieć aby zwiększyć wartość licznika), ale czasami pętla while jest lepszym rozwiązaniem. Poznajcie obie!

Chcesz dołączyć do dyskusji?

Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.