Warunek wygenerowania raportu opisuje sytuację, w której pracownik ma spełnić dwa wymagania jednocześnie:
- jest zatrudniony na umowę o pracę (np. zapis w polu umowa jako 'praca'),
- jego wynagrodzenie mieści się w zakresie od 4000 do 4500 zł włącznie.
Kluczowe są tu dwa elementy logiki:
- Koniunkcja (&&) – używamy jej, gdy oba warunki muszą być prawdziwe. Raport ma dotyczyć tylko osób, które jednocześnie mają właściwą umowę i jednocześnie spełniają kryterium płacowe.
- Przedział obustronnie domknięty – zapis "od 4000 do 4500 włącznie" oznacza, że dopuszczalne są wartości równe granicom. W kodzie przekłada się to na dwa porównania: pensja >= 4000 oraz pensja <= 4500. Te dwa porównania również muszą być spełnione naraz, więc łączymy je przez &&.
Dlatego poprawna postać warunku ma strukturę:
umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
Pozostałe propozycje są błędne, bo stosują alternatywę (||) tam, gdzie potrzebna jest koniunkcja, co "rozluźnia" kryteria:
- Warianty z pensja >= 4000 || pensja <= 4500 są praktycznie zawsze prawdziwe (dla większości liczb co najmniej jedna z tych nierówności zachodzi), więc nie filtrują poprawnie zakresu.
- Warianty z umowa == 'praca' || (...zakres...) przepuszczą osoby z inną umową, jeśli tylko spełnią kryterium płacowe, albo osoby z umową 'praca' niezależnie od pensji.
Na egzaminie warto zapamiętać regułę: "w przedziale domkniętym" = dwa warunki połączone &&, a jeśli wymagania mają być spełnione łącznie, także między kryteriami stosuje się &&.