KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 32.
Wskaż pętlę, która w języku JavaScript wyświetli sześć kolejnych liczb parzystych.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna pętla zaczyna od 2, kończy na 12 włącznie i zwiększa licznik o 2, więc wypisze: 2, 4, 6, 8, 10, 12 (dokładnie 6 liczb parzystych). Zapis i+=2 gwarantuje parzystość każdej kolejnej wartości, a warunek i<=12 domyka zakres.

Pełne wyjaśnienie:

Aby pętla w JavaScript "wyświetliła sześć kolejnych liczb parzystych", musi spełnić dwa warunki jednocześnie:

  • generować liczby parzyste (czyli co 2),
  • zrobić to dokładnie 6 razy (bez pominięcia lub nadmiaru iteracji).

Odpowiedź for(i=2;i<=12;i+=2) {document.write(i);} spełnia oba warunki:

  • Inicjalizacja i=2 ustawia pierwszą parzystą liczbę.
  • Warunek i<=12 dopuszcza także wartość 12, więc zakres obejmuje 2, 4, 6, 8, 10 i 12.
  • Krok i+=2 zwiększa licznik zawsze o 2, więc kolejne wartości pozostają parzyste.
  • Łącznie dostajemy 6 wypisań: 2 → 4 → 6 → 8 → 10 → 12.

Pozostałe propozycje są mylące typowymi błędami w pętlach:

  • for(i=2;i<12;i+=2) {document.write(i);} ma warunek i<12, więc nie wypisze 12. Wynik to 2, 4, 6, 8, 10 – tylko 5 liczb. To klasyczny błąd granicy (off-by-one).
  • for(i=2;i<12;i++) {i++; document.write(i);} zwiększa i zarówno w nagłówku (i++), jak i w ciele (i++). Taka "podwójna inkrementacja" jest trudniejsza do kontrolowania i zmienia liczbę iteracji oraz wypisywane wartości w sposób nieintuicyjny; nie jest to prosty zapis "6 kolejnych parzystych".
  • for(i=2;i<=12;i++) {i=i+2; document.write(i);} także modyfikuje i w dwóch miejscach (nagłówek i ciało), dodatkowo przeskakując o 2 przed wypisaniem. To powoduje przesunięcie wypisywanych liczb względem warunku oraz ryzyko pominięć/wyjścia poza oczekiwany ciąg.

W praktyce (w nowoczesnych aplikacjach webowych) zamiast document.write częściej używa się console.log lub dopisywania do elementu DOM, ale logika doboru warunku i kroku pętli pozostaje taka sama.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla for składa się z trzech części: inicjalizacji (np. i=0), warunku (np. i<10) i kroku (np. i++). Najpierw ustawia licznik, potem sprawdza warunek, wykonuje ciało pętli i na końcu robi krok. Cykl powtarza się, aż warunek przestanie być spełniony.
Zapis i+=2 oznacza "zwiększ wartość i o 2". To skrót od i = i + 2. W pętli for taki krok powoduje przeskakiwanie co dwa kolejne liczby, co jest typowe przy generowaniu liczb parzystych lub iterowaniu po co drugim elemencie.
Operator <= dopuszcza wartość graniczną, czyli w tym przypadku także 12. Dzięki temu zakres obejmuje 2, 4, 6, 8, 10 i 12 (6 liczb). Gdy użyjesz <, pętla zakończy się przed 12 i dostaniesz tylko 5 liczb. To częsty błąd "o jeden".
Najprościej wypisać kolejne wartości licznika na kartce albo w konsoli. Dla startu 2 i kroku 2 kolejne wartości to: 2, 4, 6, 8, 10, 12. Policzenie elementów listy daje 6. W praktyce możesz też dodać licznik iteracji (np. zmienną) i sprawdzić, ile razy wykonało się ciało pętli.
Najczęściej nie. document.write bywa odradzane, bo może nadpisać zawartość strony, gdy jest użyte po załadowaniu dokumentu. Do nauki składni pętli bywa stosowane, ale w realnych projektach lepiej użyć console.log do debugowania albo modyfikować DOM (np. dopisywać tekst do elementu).
Najczęstsze to: zły warunek graniczny (< zamiast <=), zły krok (np. i++ zamiast i+=2), oraz modyfikowanie licznika w dwóch miejscach (w nagłówku i w ciele pętli). To utrudnia kontrolę liczby iteracji i prowadzi do pomijania wartości.
Jeśli używasz wypisywania tekstu, dodaj separator. Przykładowo możesz dopisać spację lub \n (w konsoli). W HTML często stosuje się <br> jako separator linii (np. dopisywany do elementu). Bez separatora liczby mogą zlewać się w jeden ciąg znaków.
Bo wtedy licznik zmienia się w dwóch miejscach i łatwo stracić kontrolę nad przebiegiem pętli. Pojawia się ryzyko pominięcia wartości, wykonania innej liczby iteracji niż planowano, a czasem także wyjścia poza zakres. Na egzaminie zwykle poprawne są rozwiązania z jednym, czytelnym miejscem zmiany licznika.
Ustal start jako liczbę parzystą (jeśli start jest nieparzysty, zwiększ go o 1), a potem wykonaj pętlę N razy krokiem 2. Możesz użyć licznika iteracji niezależnego od wartości (np. k od 0 do N-1) i wypisywać start + 2*k. To daje dokładnie N wartości.
Przeczytaj trzy elementy pętli osobno: start, warunek i krok. Następnie "zasymuluj" 3–4 pierwsze iteracje, żeby sprawdzić wzór wartości. Na końcu oceń granicę (czy wchodzi wartość końcowa) i policz, ile wypisań będzie. Ta metoda szybko wyłapuje błędy < vs <= i podwójne inkrementacje.
info

To pytanie poprawnie rozwiązuje 57% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że poprawna pętla zaczyna od 2, kończy na 12 włącznie i zwiększa licznik o 2, więc wypisze: 2, 4, 6, 8, 10, 12 (dokładnie 6 liczb parzystych).

Źródła:

  • MDN Web Docs: for statement (JavaScript) — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for (dostęp: 2026-02-28)
  • MDN Web Docs: Document.write() — https://developer.mozilla.org/en-US/docs/Web/API/Document/write (dostęp: 2026-02-28)
  • MDN Web Docs: Addition assignment (+=) — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Addition_assignment (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja MDN: instrukcja for w JavaScript
  • Dokumentacja MDN: document.write (i dlaczego jest odradzane)
  • Ćwiczenia: ręczne "przejechanie" pętli krok po kroku dla różnych warunków (&lt; vs &lt;=)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego