Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

Słowa kluczowe: DOM w JavaScript Pętla for w JavaScript

Wskaż pętlę, która w języku JavaScript wyświetli sześć kolejnych liczb nieparzystych.

A.
for(i=1;i<=11;i+=2) {document.write(i);}
B.
for(i=1;i<11;i++) {i++; document.write(i);}
C.
for(i=1;i<11;i+=2) {document.write(i);}
D.
for(i=1;i<=11;i++) {i=i+2; document.write(i);}
Wybrana pętla działa poprawnie, bo spełnia trzy warunki naraz: zaczyna od liczby 1, czyli od pierwszej liczby nieparzystej, wykonuje się dopóki i <= 11, a po każdym obiegu zwiększa licznik o 2. Dzięki temu zmienna i przyjmuje kolejno wartości 1, 3, 5, 7, 9, 11. To dokładnie sześć kolejnych liczb nieparzystych. W pętli for bardzo ważne są trzy części: inicjalizacja licznika, warunek kontynuacji oraz sposób zmiany licznika. Tutaj zapis i += 2 jest czytelny i praktyczny, bo od razu pokazuje zamiar programisty: przechodzimy co drugą liczbę. Moim zdaniem to najlepszy styl w takim zadaniu, bo nie trzeba robić dodatkowych instrukcji wewnątrz bloku pętli. W profesjonalnym JavaScripcie warto jeszcze zadeklarować zmienną, np. for (let i = 1; i <= 11; i += 2), żeby nie tworzyć przypadkiem zmiennej globalnej. Samo document.write nadaje się raczej do prostych przykładów szkolnych; w prawdziwych stronach częściej używa się manipulacji DOM, np. textContent albo appendChild, bo document.write może nadpisać dokument po jego załadowaniu.
W tym zadaniu łatwo pomylić dwie rzeczy: wypisywanie liczb nieparzystych oraz wypisanie dokładnie sześciu wartości. Sama zmiana licznika o 2 nie wystarcza, jeśli warunek końcowy jest źle dobrany. Gdy pętla startuje od 1 i ma warunek i < 11, wypisze 1, 3, 5, 7, 9, czyli tylko pięć liczb. Liczba 11 nie zostanie już uwzględniona, bo warunek mniejszości wyklucza wartość równą 11. To typowy błąd granicy zakresu, bardzo częsty przy pętlach for. Z mojego doświadczenia właśnie znaki < i <= robią najwięcej zamieszania w prostych algorytmach. Inny problem pojawia się wtedy, gdy licznik jest zwiększany zarówno w nagłówku pętli, jak i wewnątrz jej ciała. Taki kod może wydawać się sprytny, ale w praktyce łatwo traci kontrolę nad wartościami. Jeśli w środku wykonamy i++, a potem pętla sama zrobi kolejne i++, to licznik zmienia się szybciej niż wygląda na pierwszy rzut oka. W efekcie można otrzymać liczby parzyste albo za mało wyników. Jeszcze gorzej, gdy w ciele pętli robimy i = i + 2, a w nagłówku dodatkowo i++. Wtedy całkowity skok nie jest już równy 2, tylko zależy od obu instrukcji, więc wynik nie tworzy oczekiwanego ciągu liczb nieparzystych. Dobra praktyka jest taka: licznik pętli zmieniamy w jednym, przewidywalnym miejscu, najczęściej w trzeciej części instrukcji for. Dzięki temu kod jest prostszy do sprawdzenia, łatwiejszy do debugowania i mniej podatny na pomyłki.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.