licznik = 0; for (i = 0; i < tab.length; i++) { if (tab[i] < 0) licznik++; } W języku JavaScript podany fragment funkcji ma za zadanie
licznik = 0; for (i = 0; i < tab.length; i++) { if (tab[i] < 0) licznik++; }W języku JavaScript podany fragment funkcji ma za zadanie
Poprawna jest odpowiedź, że fragment liczy, ile elementów tablicy jest ujemnych. Pętla przechodzi przez wszystkie indeksy od 0 do tab.length - 1, a warunek tab[i] < 0 sprawdza znak elementu. Gdy jest spełniony, instrukcja licznik++ zwiększa licznik o 1. Po pętli zmienna licznik zawiera liczbę elementów ujemnych, np. dla tablicy [3, -2, 0, -7, 5] będzie to 2.
Do zapamiętania schemat zliczania: licznik ustawiony na 0 przed pętlą, warunek wewnątrz, inkrementacja przy spełnieniu warunku. Ten sam schemat liczy oceny niedostateczne, liczby parzyste czy puste pola formularza. W nowoczesnym JavaScripcie to samo daje tab.filter(x => x < 0).length.
Najczęstszy błąd to pomylenie zliczania z sumowaniem. Suma ujemnych elementów wymagałaby instrukcji wynik += tab[i], która dodaje wartość elementu; tutaj licznik++ dodaje zawsze 1, niezależnie od tego, czy element ma wartość -2, czy -700. Wyświetlenie elementów wymagałoby polecenia wypisującego, np. console.log(tab[i]) albo document.write() - w kodzie takiej instrukcji nie ma, nic nie pojawia się na ekranie.
Zamiana ujemnych elementów na zero oznaczałaby przypisanie tab[i] = 0, a fragment w ogóle nie zmienia zawartości tablicy - tylko ją odczytuje. Analizując pętlę, warto sprawdzić, co dzieje się po spełnieniu warunku: przypisanie do elementu tablicy zmienia tablicę, dodawanie wartości tworzy sumę, a zwiększanie o 1 - licznik. Zmienna licznik ustawiona na zero przed pętlą to także typowy sygnał, że kod coś zlicza.