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.