KWALIFIKACJA INF3 - CZERWIEC 2022

PYTANIE NR 2.
W sklepie z farbami jest ustalony schemat wyliczania ceny farby: za kolor niebieski i zielony przy pojemności 2 litry cena farby jest równa cenie bazowej + 20%. Wyrażenie logiczne zapisane w języku JavaScript sprawdzające tę regułę ma postać
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne wyrażenie musi sprawdzić dwa kolory alternatywnie (OR) oraz jednocześnie wymusić pojemność 2 litry (AND).
Warunek koloru zapisuje się jako (kolor == 'niebieski' || kolor == 'zielony'), a następnie łączy z pojemnosc == 2 operatorem &&. Użycie '=' zamiast '==' oznacza przypisanie, nie porównanie.

Pełne wyjaśnienie:

Reguła brzmi: dopłata (cena bazowa + 20%) obowiązuje tylko wtedy, gdy spełnione są jednocześnie dwa warunki:

  • kolor jest niebieski lub zielony,
  • pojemność wynosi 2 litry.

Dlatego poprawny zapis logiczny w JavaScript powinien mieć strukturę: (warunek_kolor) && (warunek_pojemność). Warunek koloru to alternatywa: kolor == 'niebieski' || kolor == 'zielony'. Warunek pojemności to porównanie liczby: pojemnosc == 2. Nawiasy są ważne, bo przy mieszaniu operatorów && i || obowiązuje pierwszeństwo: && wiąże mocniej niż ||. Bez nawiasów kod mógłby zostać zinterpretowany inaczej niż zamierzona reguła biznesowa.

Odpowiedź z zapisem (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2 spełnia te wymagania: używa porównania (==), właściwych operatorów logicznych oraz grupowania.

Pozostałe propozycje są błędne z typowych powodów:

  • Użycie = zamiast == to przypisanie, a nie sprawdzenie warunku; może zmieniać wartość zmiennej i prowadzić do nieoczekiwanych rezultatów.
  • Zapis kolor == 'niebieski' && kolor == 'zielony' jest logicznie sprzeczny dla jednej zmiennej: nie może ona mieć dwóch różnych wartości naraz, więc warunek byłby zawsze fałszywy.
  • Łączenie warunków bez poprawnego porównania i z błędnymi operatorami miesza semantykę (przypisania, OR/AND) i nie odzwierciedla opisanej reguły.

W praktyce takie wyrażenia stosuje się w instrukcjach if do naliczania dopłat, promocji oraz walidacji danych w aplikacjach internetowych.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator || to alternatywa logiczna (OR). Zwraca prawdę, gdy co najmniej jeden z połączonych warunków jest spełniony, np. gdy kolor jest "niebieski" lub "zielony".
Operator && to koniunkcja (AND). Całe wyrażenie jest prawdziwe tylko wtedy, gdy wszystkie połączone warunki są prawdziwe, np. kolor pasuje i pojemność ma właściwą wartość.
= to przypisanie wartości do zmiennej, a nie porównanie. W warunku może to zmienić zmienną i dać mylący wynik. Do sprawdzania równości używa się == (lub częściej ===).
Stosuje się OR i dwa osobne porównania: (kolor == 'niebieski' || kolor == 'zielony'). Nie skraca się tego do "kolor == 'niebieski' || 'zielony'", bo drugi człon nie byłby porównaniem.
Taki zapis wymaga, aby ta sama zmienna miała jednocześnie dwie różne wartości, co jest niemożliwe. To typowy błąd wynikający z mylenia "lista dozwolonych wartości" z warunkiem AND.
Nawiasy są potrzebne, gdy chcesz jednoznacznie zgrupować fragmenty warunku. Ponieważ && ma wyższe pierwszeństwo niż ||, nawiasy pozwalają wymusić logikę "(kolor A lub B) i pojemność 2".
Najczęstsze to: użycie = zamiast ==/===, zamiana || z &&, brak nawiasów przy mieszaniu operatorów oraz pomijanie drugiego porównania (np. brak "kolor ==" przy drugim kolorze).
W praktyce częściej zaleca się ===, bo porównuje także typ (bez niejawnych konwersji). W zadaniach egzaminacyjnych często spotyka się == jako podstawowy operator równości, ale warto rozumieć różnicę.
Takie warunki pojawiają się w koszyku sklepu (dopłaty, rabaty), w walidacji formularzy, w filtrach produktów oraz w regułach biznesowych po stronie klienta. Dzięki nim interfejs reaguje od razu na wybory użytkownika.
Ćwicz tłumaczenie zdań z języka naturalnego na warunki: "lub" → ||, "oraz" → &&. Zawsze sprawdzaj, czy używasz porównania, nie przypisania, i dodawaj nawiasy, gdy mieszasz operatory.
info

Statystycznie 65% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że użycie '=' zamiast '==' oznacza przypisanie, nie porównanie.

Źródła:

  • MDN Web Docs: Logical OR (||) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR - 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: Equality (==) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality - dostęp 2026-03-02

Materiały:

  • Dokumentacja MDN: operatory logiczne w JavaScript
  • Dokumentacja MDN: operatory porównania i równości
  • Dokumentacja MDN: pierwszeństwo operatorów (operator precedence)

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego