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: Algorytmy i podstawy informatyki JavaScript

Słowa kluczowe: Instrukcja if w JavaScript Operatory logiczne w JavaScript

W instrukcji warunkowej języka JavaScript należy sprawdzić przypadek, gdy wartość zmiennej a jest liczbą parzystą, a wartość zmiennej b jest różna od zera. Warunek taki jest prawidłowo zapisany w następujący sposób

A.
if (a / 2 == 0 && b != 0)
Źle. a / 2 to wynik dzielenia, a nie reszta. Równość z zerem zachodzi tylko dla a równego 0.
B.
if (a % 2 == 1 && b != 0)
Źle. Reszta równa 1 oznacza liczbę nieparzystą, a treść wymaga parzystej.
C.
if (a % 2 == 0 || b != 0)
Źle. Operator || wystarcza jednej części, więc przepuści np. nieparzyste a przy niezerowym b.
D.
if (a % 2 == 0 && b != 0)
Dobrze. a % 2 == 0 sprawdza parzystość, b != 0 różność od zera, a && wymaga obu naraz.

Parzystość sprawdza się operatorem reszty z dzielenia %: liczba jest parzysta, gdy po podzieleniu przez 2 reszta wynosi 0, czyli a % 2 == 0. „Różna od zera” zapisuje się operatorem !=: b != 0. Oba warunki muszą być spełnione jednocześnie, dlatego łączy je &&.

Sprawdzenie na liczbach: dla a = 8 i b = 3 warunek daje true, dla a = 7 albo b = 0 już false. Reszta z dzielenia przydaje się częściej, niż się wydaje: i % 3 == 0 sprawdza podzielność przez 3, a i % 2 w pętli pozwala kolorować co drugi wiersz tabeli. W JavaScript lepiej używać ścisłego porównania === i !==, ale w tym zadaniu wynik jest taki sam.

Problem z tym zadaniem zwykle dotyczy jednego znaku. Zapis a % 2 == 1 sprawdza resztę równą 1, czyli liczby nieparzyste, dokładnie odwrotnie, niż chce treść. W JavaScript dla ujemnych nieparzystych reszta wynosi nawet -1, więc ten zapis ma też drugą wadę.

Dzielenie a / 2 daje wynik dzielenia, a nie resztę. Wynik a / 2 == 0 jest prawdziwy tylko dla a równego 0, więc ten zapis nie odróżnia liczb parzystych od nieparzystych. Dla a = 8 daje 4, a nie 0.

Zapis z poprawnym sprawdzeniem parzystości, ale połączony operatorem ||, wymaga spełnienia tylko jednej części. Przepuściłby nieparzyste a przy niezerowym b, np. a = 7 i b = 3, a także parzyste a przy b = 0. Treść łączy oba warunki słowem „a”, w znaczeniu „i jednocześnie”.

Słowo „a” w treści łączy tu wymagania.

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.