Warunek ma wyłonić tych pracowników, którzy spełniają oba wymagania jednocześnie:
- są zatrudnieni na umowę o pracę (czyli zmienna umowa ma wartość "praca"),
- ich wynagrodzenie mieści się w przedziale domkniętym 4000–4500, czyli z uwzględnieniem wartości granicznych.
W logice i w JavaScript sytuacja "musi być spełnione X oraz Y" wymaga użycia koniunkcji, czyli operatora &&. Stąd poprawna struktura to: sprawdzenie umowy && sprawdzenie przedziału pensji.
Przedział domknięty zapisuje się jako dwa porównania połączone AND:
- pensja >= 4000 (nie mniej niż 4000),
- pensja <= 4500 (nie więcej niż 4500).
Połączenie tych dwóch porównań operatorem OR byłoby błędem, bo warunek pensja >= 4000 || pensja <= 4500 jest prawdziwy dla ogromnej większości liczb (praktycznie dla każdej), więc nie ograniczałby wyniku do przedziału.
Dlaczego pozostałe propozycje są niepoprawne:
- Warianty z OR między umową a pensją dopuszczają pracowników spełniających tylko jeden z warunków (np. dowolna umowa, byle pensja w zakresie), a w zadaniu wymagane są oba naraz.
- Warianty z OR wewnątrz sprawdzania pensji nie testują przedziału, tylko warunek "co najmniej 4000 lub co najwyżej 4500", co nie odpowiada zapisowi 4000–4500 włącznie.
W praktyce takie warunki stosuje się w instrukcjach if lub przy filtrowaniu danych do raportów (np. w aplikacji kadrowej), gdzie precyzja operatorów logicznych bezpośrednio wpływa na poprawność wyników.