Zapis przedziału (100, 200> oznacza, że dolna granica jest otwarta, a górna domknięta. W praktyce przekłada się to na dwa warunki porównania:
- liczba > 100 (bo 100 nie należy do przedziału),
- liczba <= 200 (bo 200 należy do przedziału).
Aby liczba "była w przedziale", oba te wymagania muszą być spełnione jednocześnie, więc łączymy je operatorem koniunkcji &&. Taki zapis odcina wartości mniejsze lub równe 100 oraz większe od 200.
Odpowiedź "If (liczba < 100 || liczba >=200)" opisuje sytuację odwrotną: przepuszcza liczby mniejsze od 100 lub co najmniej 200, więc obejmuje szeroki obszar spoza oczekiwanego zakresu. To typowy błąd polegający na myleniu warunku należenia do przedziału z warunkiem "poza przedziałem".
Odpowiedź "If (liczba > 100 || liczba <=200)" jest logicznie prawie zawsze prawdziwa dla większości liczb (np. 150 spełnia oba, a 1000 spełnia pierwszy). Alternatywa || nie wymusza jednoczesnego spełnienia ograniczeń, więc nie testuje przedziału.
Odpowiedź "If (liczba < 100 && liczba <=200)" ma niespójny sens: pierwszy warunek wymaga wartości mniejszych od 100, co kłóci się z ideą przedziału zaczynającego się powyżej 100. W efekcie dopuszcza liczby, które z definicji nie powinny przejść walidacji.
Wskazówka egzaminacyjna: najpierw przetłumacz przedział na dwa porównania (> / >= oraz < / <=), a dopiero potem zdecyduj, czy potrzebujesz && (należy do przedziału) czy || (często "poza przedziałem").