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 JavaScript

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

W instrukcji warunkowej języka JavaScript należy sprawdzić, czy wartość zmiennej a leży poza przedziałem domkniętym <0, 100>, a jednocześnie zmienna b jest równa zero. Który zapis warunku jest poprawny?

A.
if ((a < 0 && a > 100) || b == 0)
Źle. a < 0 && a > 100 nigdy nie jest prawdą, więc liczy się tylko b == 0.
B.
if ((a < 0 || a > 100) && b == 0)
Dobrze. Alternatywa wyznacza wartości poza przedziałem, a && dodaje wymaganie b == 0.
C.
if ((a > 0 && a < 100) && b == 0)
Źle. Ten warunek sprawdza a wewnątrz przedziału, czyli sytuację odwrotną.
D.
if (a < 0 || a > 100 || b != 0)
Źle. Sprawdza b != 0, a || przepuszcza wynik po spełnieniu jednego członu.

Warunek składa się z dwóch części, które muszą być spełnione razem. Pierwsza: a leży poza przedziałem <0, 100>, czyli jest mniejsze od 0 albo większe od 100 - tu potrzebny jest operator ||, bo liczba nie może być jednocześnie mniejsza od 0 i większa od 100. Druga: b == 0. Obie łączy &&, a nawias wokół alternatywy jest konieczny, bo && wiąże silniej niż ||.

Dla a = 150 i b = 0 warunek daje true, a dla a = 50 albo b = 3 - false. Reguła: przedział „pomiędzy” zapisuje się przez &&, „poza przedziałem” przez ||.

Przed zapisaniem warunku warto sprawdzić go na kilku wartościach granicznych.

Problem z tym pytaniem najczęściej wynika z mieszania operatorów logicznych. Zapis (a < 0 && a > 100) nigdy nie jest prawdziwy, bo żadna liczba nie jest jednocześnie ujemna i większa od 100. Cały warunek sprowadza się wtedy do b == 0 i przepuści na przykład a = 50.

Wersja z samymi || i b != 0 ma dwa błędy: sprawdza, czy b jest różne od zera, a do tego wystarcza jej spełnienie dowolnego członu, więc a = 200 przejdzie przy każdym b. Warunek (a > 0 && a < 100) && b == 0 sprawdza przeciwną sytuację - a wewnątrz przedziału, i to bez jego końców.

Poprawny zapis łączy alternatywę (a < 0 || a > 100) z b == 0 operatorem &&.

Przed wyborem warto podstawić do każdego warunku kilka wartości, na przykład 50 i 150, a dla drugiej zmiennej zero i liczbę różną od zera.

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.