Rozdział 5 z 12

Pętle w JavaScripcie: for, forEach, while i do-while

5 min

Pętle w JavaScripcie pozwalają wykonać ten sam kod wiele razy z rzędu. Przydają się, kiedy trzeba przejść przez tablicę albo powtórzyć konkretne zadanie określoną liczbę razy. W tym rozdziale przyjrzymy się pętlom for i while, najczęściej używanym w JavaScripcie.

Pętla for w JavaScripcie

Pętla for w JavaScripcie wykonuje kod z góry ustaloną liczbę razy. Oto przykład jej użycia:

javascript
for (let i = 0; i < 5; i++) {
  console.log(i);
}

Pętla for startuje ze zmienną „i” równą 0. Warunek „i < 5” sprawdza, czy „i” jest mniejsze od 5. Jeśli warunek jest prawdziwy, kod w klamrach zostanie wykonany, a zmienna „i” zwiększona o 1. Pętla będzie się kręcić, dopóki warunek „i < 5” nie stanie się fałszywy.

Efektem tego kodu jest wypisanie w konsoli liczb od 0 do 4.

Pętli for możesz też użyć do przejścia przez tablicę:

javascript
let tableau = ['un', 'deux', 'trois', 'quatre', 'cinq'];

for (let i = 0; i < tableau.length; i++) {
  console.log(tableau[i]);
}

Pętla for przechodzi przez tablicę „tableau”, korzystając z właściwości „length”, żeby ustalić liczbę elementów do obejścia. Przy każdej iteracji wartość bieżącego elementu trafia do konsoli.

Możesz też użyć instrukcji „break”, żeby wyjść z pętli for przed czasem:

javascript
for (let i = 0; i < 5; i++) {
  console.log(i);
  if (i === 3) {
    break;
  }
}

Instrukcja continue w pętli for

Jest jeszcze instrukcja „continue”, która przechodzi do kolejnej iteracji bieżącej pętli, pomijając resztę kodu z iteracji aktualnej. Oto przykład użycia instrukcji „continue” w pętli for:

javascript
for (let i = 0; i < 10; i++) {
  if (i % 2 !== 0) {
    continue;
  }
  console.log(i);
}

W tym przykładzie pętla for przechodzi przez liczby od 0 do 9. Instrukcja „continue” sprawdza, czy wartość „i” jest nieparzysta. Jeśli tak, przechodzi do kolejnej iteracji, nie wykonując reszty kodu bieżącej iteracji.

Efektem tego kodu jest wypisanie w konsoli liczb parzystych od 0 do 8.

Uwaga

Instrukcji „continue” można używać wyłącznie w pętlach, nigdy w instrukcji switch.

Pętla forEach w JavaScripcie

Pętla forEach w JavaScripcie przechodzi przez elementy tablicy albo obiektu. Oto przykład użycia pętli forEach z tablicą:

javascript
let tableau = ['un', 'deux', 'trois', 'quatre', 'cinq'];

tableau.forEach(function(element) {
  console.log(element);
});

Pętla forEach przechodzi przez tablicę „tableau” i dla każdego elementu wykonuje przekazaną w argumencie funkcję anonimową. Wartość bieżącego elementu jest dostępna wewnątrz tej funkcji przez zmienną „element”.

Efektem tego kodu jest wypisanie w konsoli każdego elementu tablicy.

Pętli forEach możesz też użyć z obiektami, przez metodę „Object.entries()”:

javascript
let objet = {
  un: 'valeur1',
  deux: 'valeur2',
  trois: 'valeur3'
};

Object.entries(objet).forEach(function([clé, valeur]) {
  console.log(clé + ': ' + valeur);
});

Metoda „Object.entries()” zwraca tablicę par [klucz, wartość] dla każdej właściwości obiektu „objet”. Pętla forEach przechodzi przez tę tablicę i dla każdej pary wykonuje przekazaną funkcję anonimową. Klucz i wartość są dostępne wewnątrz funkcji przez zmienne „clé” i „valeur”.

Efektem tego kodu jest wypisanie w konsoli każdej pary w postaci „klucz: wartość”.

Pętla while w JavaScripcie

Pętla while w JavaScripcie wykonuje kod tak długo, jak podany warunek jest prawdziwy. Oto przykład jej użycia:

javascript
let a = 0;

while (a < 5) {
  console.log(a);
  a++;
}

Pętla while startuje z warunkiem „a < 5”. Dopóki jest on prawdziwy, kod w klamrach zostanie wykonany, a zmienna „a” zwiększona o 1. Pętla będzie się kręcić, dopóki warunek „a < 5” nie stanie się fałszywy.

Efektem tego kodu jest wypisanie w konsoli liczb od 0 do 4.

Możesz też sięgnąć po pętlę do-while, która najpierw wykonuje kod w klamrach, a dopiero potem sprawdza warunek:

javascript
let a = 0;

do {
  console.log(a);
  a++;
} while (a < 5);

W tym kodzie pętla do-while wykona się co najmniej raz, bo warunek jest sprawdzany po pierwszym przejściu przez kod w klamrach. Efektem również będzie wypisanie w konsoli liczb od 0 do 4.

W pętli while musisz zawrzeć instrukcję, która zwiększa albo zmniejsza zmienną użytą w warunku, inaczej dostaniesz pętlę nieskończoną. Bez niej warunek pozostanie na zawsze prawdziwy, a pętla będzie się kręcić bez końca.

Innymi słowy, wartość tej zmiennej musi się zmieniać przy każdej iteracji. Dzięki temu warunek w pewnym momencie stanie się fałszywy i pętla się zakończy.

Pętlę można też przerwać, zanim warunek stanie się fałszywy, instrukcją „break”. „break” natychmiast przerywa wykonanie pętli i przechodzi do kolejnej instrukcji po niej. Oto przykład użycia instrukcji „break” w pętli while:

javascript
let a = 0;

while (true) {
  console.log(a);
  a++;
  if (a >= 5) {
    break;
  }
}

Pętla while startuje z warunkiem „true”, czyli będzie się kręcić tak długo, jak warunek jest prawdziwy. Wewnątrz niej stoi jednak instrukcja „break”, wykonywana, gdy wartość „a” osiągnie lub przekroczy 5. To przerywa pętlę i przenosi wykonanie do kolejnej instrukcji po niej.

Efektem tego kodu jest wypisanie w konsoli liczb od 0 do 4.

break

Instrukcji „break” można używać nie tylko w pętlach while, ale również w pętlach for i w instrukcji switch.

Podsumowanie

Przeszliśmy przez pętle dostępne w JavaScripcie: for, forEach i while. Zobaczyliśmy, jak każdej z nich użyć do wielokrotnego wykonania kodu i jak sterować ich przebiegiem instrukcjami „break” i „continue”.

Newsletter

Nowe testy, poradniki i projekty — e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.