KWALIFIKACJA INF3 - CZERWIEC 2016

PYTANIE NR 29.
W instrukcji warunkowej języka JavaScript należy sprawdzić przypadek, gdy wartość zmiennej a jest z przedziału (0, 100), natomiast wartość zmiennej b jest większa od zera. Warunek taki jest prawidłowo zapisany w następujący sposób
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Przedział otwarty (0, 100) oznacza jednocześnie a > 0 oraz a < 100, więc trzeba użyć operatora &&.
Dodatkowo ma być spełnione b > 0, dlatego warunki łączy się kolejnym &&: if (a > 0 && a < 100 && b > 0). Zapisy z || dla przedziału są błędne.

Pełne wyjaśnienie:

Warunek z treści składa się z dwóch niezależnych wymagań:

  • a ma należeć do przedziału otwartego (0, 100),
  • b ma być większe od zera.

Przedział otwarty (0, 100) w matematyce oznacza wartości większe od 0 i jednocześnie mniejsze od 100, bez włączania końców. W JavaScript zapisuje się to jako dwa porównania połączone koniunkcją:

a > 0 && a < 100

Ponieważ dodatkowo wymagamy b > 0, dokładamy trzeci warunek, również połączony operatorem AND:

if (a > 0 && a < 100 && b > 0)

Dlaczego pozostałe propozycje są niepoprawne?

  • Zapis z a > 0 || a < 100 nie opisuje przedziału (0, 100), bo dla większości liczb przynajmniej jedna z tych nierówności będzie prawdziwa. Taki warunek staje się "prawie zawsze true", więc nie filtruje wartości do zakresu.
  • Zapis (a > 0 || a < 100) && b > 0 nadal ma ten sam błąd: część dotycząca a używa alternatywy zamiast koniunkcji, więc nie wymusza spełnienia obu granic.
  • Zapis (a > 0 && a < 100) || b < 0 zmienia sens całości: dopuszcza sytuację, w której a jest w zakresie albo b jest ujemne. To jest sprzeczne z wymaganiem b > 0 i dodatkowo używa ||, które rozluźnia warunek.

Wskazówka egzaminacyjna: gdy widzisz "przedział otwarty", prawie zawsze szukasz wzorca "> dolna_granica i < górna_granica", czyli operatora &&. Operator || pasuje do sytuacji "spełnij co najmniej jeden warunek", a nie do sprawdzania zakresu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Przedział otwarty (0, 100) oznacza, że wartość jest większa od 0 i jednocześnie mniejsza od 100, bez równości na granicach. W JS zapisujesz to jako dwa porównania połączone AND: a > 0 && a < 100.
Łączysz trzy warunki operatorem AND, bo wszystkie muszą być spełnione jednocześnie: if (a > 0 && a < 100 && b > 0). To typowy wzorzec walidacji zakresu i dodatkowego ograniczenia na inną zmienną.
Bo alternatywa || wymaga spełnienia tylko jednego warunku. Dla prawie każdej liczby a będzie prawdą, że a > 0 lub a < 100, więc taki test "przepuszcza" wartości spoza zakresu. Do przedziału potrzebujesz &&.
Najczęściej myli się && z ||, przez co warunek staje się zbyt luźny. Częsty jest też błąd znaku: wpisanie b < 0 zamiast b > 0. Inną pułapką jest brak nawiasów przy mieszaniu && i ||, co utrudnia czytanie.
W przypadku samego łączenia && nawiasy nie są konieczne, bo zapis jest jednoznaczny. Ale gdy mieszasz && i ||, nawiasy często są potrzebne dla czytelności i pewności interpretacji. Dobra praktyka: grupuj warunek zakresu w nawiasach, jeśli warunek jest długi.
Operator && stosujesz, gdy wszystkie warunki muszą być prawdziwe (np. zakres i dodatkowe ograniczenie). Operator || jest do sytuacji "wystarczy jeden" (np. różne akceptowane wartości). W testowaniu przedziału prawie zawsze potrzebujesz &&.
Dla przedziału domkniętego używasz nierówności z równością: a >= 0 && a <= 100. To różni się od przedziału otwartego, gdzie stosujesz wyłącznie > i <. Na egzaminie zwracaj uwagę na nawiasy: ( ) oznaczają otwarty, [ ] domknięty.
Bardzo często w walidacji formularzy (np. procenty, punkty, zakres wieku), w filtrowaniu danych w UI oraz przy kontroli parametrów przed wysłaniem żądania do API. Poprawny warunek zapobiega błędom logiki i ogranicza ryzyko przyjęcia niepoprawnych danych.
Nie wprost. Zapis matematyczny 0 < a < 100 nie działa w JS tak, jak w matematyce. Poprawnie trzeba użyć dwóch porównań: a > 0 && a < 100. To częsta pułapka dla osób przenoszących zapis z matematyki do kodu.
Ćwicz rozpisywanie warunków na proste części: zakresy (dwie nierówności) i dodatkowe kryteria (np. b > 0). Zrób serię przykładów z ( ) oraz [ ], a potem sprawdzaj, czy warunek nie jest "zbyt luźny" przez ||. Pomaga też testowanie na skrajnych wartościach.
info

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

Eksperci podkreślają: "Zapisy z || dla przedziału są błędne."

Źródła:

  • MDN Web Docs: "if...else" — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else (dostęp: 2026-03-02)
  • MDN Web Docs: "Logical AND (&&)" — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND (dostęp: 2026-03-02)
  • MDN Web Docs: "Logical OR (||)" — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MDN: instrukcja if...else
  • Dokumentacja MDN: operatory logiczne &amp;&amp; i ||
  • Ćwiczenia: pisanie warunków dla przedziałów (otwartych i domkniętych)

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego