KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 3.
Program zapisany w języku JavaScript oblicza cenę promocyjną dla swetrów w kolorach: zielonym, niebieskim (zmienna kolor) przy zakupach powyżej 200 zł (zmienna zakupy). Warunek do obliczeń powinien być zapisany przy pomocy wyrażenia logicznego
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek ma być spełniony tylko wtedy, gdy zakupy przekraczają 200 oraz kolor jest jednym z dwóch dopuszczonych. Dlatego łączymy >200 operatorem && z nawiasem, w którym sprawdzamy 'zielony' lub 'niebieski' operatorem ||. Pozostałe propozycje mylą OR z AND albo wymagają dwóch kolorów naraz.

Pełne wyjaśnienie:

W treści zadania promocja ma zadziałać tylko przy jednoczesnym spełnieniu dwóch wymagań:

  • wartość zakupów jest powyżej 200, czyli warunek liczbowy zakupy > 200,
  • kolor swetra należy do zbioru dwóch dozwolonych wartości: 'zielony' albo 'niebieski'.

To oznacza, że na najwyższym poziomie potrzebna jest koniunkcja (AND), bo oba kryteria muszą być spełnione naraz: zakupy > 200 && (warunek na kolor).

Warunek na kolor jest alternatywą (OR), bo wystarczy jeden z kolorów: kolor == 'zielony' || kolor == 'niebieski'. Ujęcie go w nawias jest dobrą praktyką, bo wyraźnie grupuje logikę: zakupy > 200 && ( ... ).

Dlaczego pozostałe wyrażenia są błędne?

  • Wariant z dwoma && przy kolorach wymaga, aby kolor był jednocześnie 'zielony' i 'niebieski', co dla jednej zmiennej typu string jest logicznie niemożliwe.
  • Wariant z samymi || zadziała zbyt szeroko: wystarczy przekroczyć 200 albo mieć jeden z kolorów, nawet przy małych zakupach, co nie spełnia warunku "powyżej 200".
  • Wariant zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski') też jest zbyt szeroki przez ||, a dodatkowo wewnętrzny warunek kolorów pozostaje sprzeczny.

Wskazówka egzaminacyjna: najpierw przetłumacz wymagania na logikę zdań ("A i (B lub C)"), a dopiero potem zapisz to operatorami && i || z nawiasami.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator && oznacza koniunkcję (AND): całe wyrażenie jest prawdziwe tylko wtedy, gdy oba warunki po jego stronach są prawdziwe. W promocjach sklepowych typowo łączy się nim niezależne wymagania, np. próg kwotowy i cechę produktu.
Operator || oznacza alternatywę (OR): wyrażenie jest prawdziwe, gdy spełniony jest co najmniej jeden z warunków. Stosuje się go np. do sprawdzenia, czy zmienna ma jedną z dopuszczonych wartości, takich jak 'zielony' lub 'niebieski'.
Należy użyć schematu A && (B || C), gdzie A to próg kwotowy, a B i C to dwa możliwe kolory. Nawias jest ważny, bo pokazuje, że alternatywa dotyczy tylko koloru, a nie całego warunku.
Taki zapis wymaga, aby ta sama zmienna jednocześnie miała dwie różne wartości. Dla łańcucha znaków jest to sprzeczne logicznie, więc warunek praktycznie zawsze będzie fałszywy. To częsty błąd przy sprawdzaniu "jednego z wielu" wariantów.
Nawiasy nie zawsze są konieczne, ale często są zalecane dla czytelności i uniknięcia pomyłek. Gdy łączysz kilka operatorów, np. && i ||, nawias jasno pokazuje grupowanie warunków i zmniejsza ryzyko błędnej interpretacji.
Najprościej użyć alternatywy: zmienna == 'A' || zmienna == 'B'. W praktyce webowej spotyka się też podejście z tablicą i includes, ale na egzaminie często oczekuje się klasycznego zapisu z ||.
Jeśli zapiszesz zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski', to promocja zadziała, gdy spełniony jest dowolny jeden warunek. To może dać rabat przy niskich zakupach tylko dlatego, że kolor pasuje, co nie spełnia wymagania progu kwotowego.
Najczęstsze pomyłki to: zamiana && z ||, brak nawiasów przy mieszaniu operatorów, oraz próba sprawdzania "jednej z wartości" przez dwa warunki z &&. Warto tłumaczyć zapis na zdanie: "A i (B lub C)".
Używa się ich m.in. w walidacji formularzy, regułach rabatowych koszyka, filtrowaniu list produktów, kontrolowaniu widoczności elementów UI oraz w warunkach dostępu (np. rola użytkownika i stan logowania). To podstawowa umiejętność front-endowa.
Najprościej przygotować kilka przypadków testowych: zakupy 199/201 oraz kolory 'zielony', 'niebieski', inny. Następnie wypisać wynik warunku w konsoli, np. console.log(...). Jeśli promocja włącza się tylko dla 201 i dozwolonych kolorów, logika jest poprawna.
info

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

Specjaliści zwracają uwagę: "Warunek ma być spełniony tylko wtedy, gdy zakupy przekraczają 200 oraz kolor jest jednym z dwóch dopuszczonych."

Źródła:

  • MDN Web Docs: Logical AND (&&) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND (dostęp: 2026-02-28)
  • MDN Web Docs: Logical OR (||) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR (dostęp: 2026-02-28)
  • MDN Web Docs: Operator precedence (JavaScript) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja MDN: operatory logiczne (&&, ||)
  • Ćwiczenia z budowania warunków w instrukcji if
  • Powtórka priorytetów operatorów w JavaScript

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego