Pętla for - trzy pola nad ciałem: start, warunek, krok
Ta sama logika jako for i jako while
Punkt zaczepienia z PHP (kurs PHP, lekcje 06-07): budowa niemal identyczna, bez $
Ćwiczenie: tabliczka mnożenia dwoma sposobami
Rozgrzewka · 3 minuty
Rozgrzewka: switch, break, ? :
W switch (day) { case "wt": task(); case "sr": other(); break; } zapomnieliście break w case "wt". Co się wykona dla day = "wt"?
Zapiszcie operatorem ? :: if (age >= 18) { status = "pełnoletni"; } else { status = "niepełnoletni"; }
switch ma pięć gałęzi case, pasuje trzecia. Ile case JavaScript porówna z wartością, zanim znajdzie dopasowanie?
Część 1 · Pętla for
for - trzy pola nad ciałem pętli
Trzy pola w nawiasie, oddzielone średnikami: start, warunek i krok. Start wykonuje się raz, na początku. Warunek sprawdza się przed każdym przebiegiem - fałsz kończy pętlę. Krok wykonuje się po każdym przebiegu i zwykle zwiększa licznik.
for (let i = 0; i < 5; i++) {
console.log(i);
}
MDN: Learn_web_development/Core/Scripting/Loops (sekcja „The standard for loop”: „An initializer... A condition... A final-expression...”)
Część 2 · Punkt zaczepienia
PHP i JS: ta sama budowa
PHP (kurs PHP, lekcja 06)
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
JavaScript
for (let i = 1; i <= 10; i++) {
console.log(i);
}
Jedyna różnica: PHP oznacza zmienną znakiem $, JavaScript słowem let. Start, warunek i krok stoją w tym samym miejscu, w tej samej kolejności. JavaScript nie ma pętli foreach z PHP (kurs PHP, lekcja 07) w tej formie - tablice przejdziecie pętlą for...of, poznacie ją przy tablicach.
Ciekawostka z MDN: PHP kończy od razu dwie zagnieżdżone pętle instrukcją break 2;(kurs PHP, lekcja 06), ale JavaScript numeru przy break nie przyjmuje. Zamiast tego pętlę oznacza się etykietą, np. loop1: for (...) { for (...) { break loop1; } } - break loop1; kończy od razu obie pętle.
PHP Manual: control-structures.for.php · MDN: Learn_web_development/Core/Scripting/Loops · MDN: Web/JavaScript/Reference/Statements/for...of (zapowiedź: „The basic tool for looping through a collection is the for...of loop”) · ciekawostka: MDN, Statements/label („A labeled statement is any statement that is prefixed with an identifier. You can jump to this label using a break or continue statement nested within the labeled statement.”) · developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
Część 3 · Przebieg pętli
Krok po kroku: tabliczka mnożenia przez 5
for (let i = 1; i <= 10; i++) {
console.log(`5 x ${i} = ${5 * i}`);
}
MDN: Learn_web_development/Core/Scripting/Loops (przykład tabliczki mnożenia jako podstawowy wzorzec for)
Część 4 · Pętla while
while - warunek sprawdzany na wejściu
let i = 1;
while (i <= 10) {
console.log(`5 x ${i} = ${5 * i}`);
i++;
}
W for start, warunek i krok stoją razem w nawiasie. W while start stoi PRZED pętlą, a krok jest ostatnią linią W ŚRODKU ciała - łatwo o nim zapomnieć. Wtedy warunek zostaje zawsze prawdziwy i pętla się nie zatrzyma (pętla nieskończona, np. samo while (true) { } - nie uruchamiamy tego).
MDN: Learn_web_development/Core/Scripting/Loops (sekcja „The while loop”: „the initializer variable is set before the loop... the final-expression is included inside the loop after the code to run”)
Część 5 · for czy while
Ta sama pętla: for i while obok siebie
for
for (let i = 1; i <= 10; i++) {
console.log(`5 x ${i} = ${5 * i}`);
}
while
let i = 1;
while (i <= 10) {
console.log(`5 x ${i} = ${5 * i}`);
i++;
}
Obie wersje dają dokładnie ten sam wynik: 10 linii, 5 x 1 = 5 do 5 x 10 = 50. MDN poleca zaczynać od for - start, warunek i krok siedzą w jednym miejscu, w nawiasie, trudniej o nich zapomnieć.
MDN: Learn_web_development/Core/Scripting/Loops („We would recommend for, at least to begin with, as it is probably the easiest for remembering everything”)
Egzamin EE.09 / E.14
Tak pytają na egzaminie
1. Dany jest kod w języku JavaScript:
for (i = 0; i < 100; i += 10)
document.write(i + ' ');
Instrukcją równoważną funkcjonalnie jest
while (i < 10) {
document.write(i+' ');
i += 10;
}
Kod 1.
i = 0;
while (i < 100) {
document.write(i+' ');
i += 10;
}
Kod 3.
while (i < 100) {
document.write(i+' ');
}
Kod 2.
i = 0;
while (i < 10) {
document.write(i+' ');
i++;
}
Kod 4.
Kod 1.
Kod 2.
Kod 3.
Kod 4.
2. Dany jest kod w języku JavaScript:
var n, i;
var a = 1;
n = prompt("Podaj n: ", "");
for (i = n; i >= 2; i--) a *= i;
document.write("Wynik ", a);
Podaj wynik działania programu po podaniu na wejściu wartości 5.
60
120
125
625
CKE, EE.09, styczeń 2026, zadanie 4 · CKE, E.14, styczeń 2018, zadanie 30 (bank pytań, przedmiot strony, temat javascript)
Ćwiczenie przy komputerze · 25 minut
Ćwiczenie: tabliczka mnożenia dwoma sposobami
W folderze swojego projektu otwórz script.js (ten sam plik co na poprzednich lekcjach).
Pętlą for wypisz w konsoli tabliczkę mnożenia przez 5, od 5 x 1 do 5 x 10, w formacie "5 x 1 = 5" (szablon `${...}`).
Pod spodem napisz tę samą tabliczkę pętlą while - licznik zadeklaruj PRZED pętlą, krok i++ na końcu ciała.
Sprawdź w konsoli (F12 → Console), że obie pętle dają identyczne 10 linii.
Zapisz script.js, odśwież stronę i zostaw obie pętle w pliku.
Na koniec
Sprawdź się
Które pole pętli for wykonuje się tylko raz, a które po każdym przebiegu?
W while zapomnieliście zwiększyć licznik w ciele pętli. Co się stanie?
Kiedy sięgacie po for, a kiedy po while, skoro obie robią to samo?
Na następnej lekcji: pętla do...while oraz break i continue.
Poza szkołą
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
for (let i = 0; i < arr.length; i++) licząca indeksy tablicy
Do przejścia po tablicy częściej for...of albo metody tablicowe (map, forEach) - krótszy zapis, bez ręcznego licznika.
zastępowane
while (true) { ... break; }
Tak działają pętle nasłuchujące: serwer, kolejka zadań, gra czekająca na klik - kręcą się bez końca, break albo return kończy pracę.
nadal w użyciu
var i w pętli
ESLint, reguła no-var, wymusza let/const - var nie pilnuje zasięgu bloku, w pętli to źródło błędów.
zastępowane
Zapomniany krok w while (pętla nieskończona)
Debugger przeglądarki (F12 → Sources) zatrzymuje wykonanie i pokazuje, która linia się zapętliła.