W języku JavaScript, aby sprawdzić warunek, czy liczba znajduje się w przedziale <100, 200), należy zapisać:
A.
if (liczba <= 100 || liczba > 200)
B.
if (liczba > 100 && liczba <= 200)
C.
if (liczba >= 100 && liczba < 200)
D.
if (liczba >= 100 || liczba < 200)
Zapis if (liczba >= 100 && liczba < 200) poprawnie sprawdza, czy zmienna liczba należy do przedziału <100, 200), czyli czy dolna granica 100 jest wliczana, a górna granica 200 już nie. Operator >= oznacza „większe lub równe”, więc wartość 100 przejdzie warunek. Operator < oznacza „mniejsze niż”, więc 199.99 przejdzie, ale 200 już nie. Kluczowy jest też operator &&, czyli logiczne AND. W JavaScript oznacza on, że oba warunki muszą być jednocześnie prawdziwe. Moim zdaniem to jeden z najważniejszych schematów w praktycznym programowaniu, bo bardzo często sprawdzamy zakresy: progi punktowe, ceny promocyjne, przedziały wieku, zakresy temperatur albo walidację danych z formularza. Przykład: jeśli użytkownik ma dostać rabat tylko dla zamówień od 100 zł do poniżej 200 zł, taki warunek jest czytelny i zgodny z dobrymi praktykami. W JavaScript, zgodnie z zachowaniem opisanym w standardzie ECMAScript, nie zapisujemy tego jako 100 <= liczba < 200, bo język zinterpretuje to inaczej niż matematyka szkolna. Lepiej zawsze rozbić porównanie na dwa warunki i połączyć je przez &&. Kod jest wtedy jednoznaczny, prosty do debugowania i czytelny dla innych programistów.
W tym pytaniu najłatwiej pomylić zapis matematyczny przedziału z operatorem użytym w kodzie. Przedział <100, 200) oznacza, że 100 jest dozwolone, ale 200 już nie. Dlatego dolna granica musi być sprawdzona operatorem >=, a górna operatorem <. Jeżeli ktoś użyje warunku liczba > 100 && liczba <= 200, to tak naprawdę sprawdza inny przedział: bez 100, ale z 200. To drobna różnica, ale w programowaniu takie detale są bardzo istotne, szczególnie przy ocenach, limitach płatności albo progach podatkowych. Jeden znak potrafi zmienić działanie całej aplikacji. Użycie operatora || też jest typową pułapką. || oznacza logiczne OR, czyli wystarczy, że spełniony będzie tylko jeden z warunków. Dla zapisu liczba >= 100 || liczba < 200 warunek będzie prawdziwy praktycznie dla każdej liczby: 50 jest mniejsze od 200, 250 jest większe lub równe 100, a 150 spełnia oba. To nie ogranicza wartości do środka przedziału, tylko robi warunek zbyt szeroki. Z kolei zapis liczba <= 100 || liczba > 200 opisuje raczej wartości spoza interesującego zakresu, a nie te znajdujące się w nim. Z mojego doświadczenia uczniowie często wybierają ||, bo myślą „liczba ma być większa od 100 lub mniejsza od 200”, ale przy przedziale trzeba myśleć: liczba ma jednocześnie spełniać dolną i górną granicę. Dlatego w warunkach zakresowych najczęściej stosujemy &&, bo wymagamy dwóch prawdziwych porównań naraz.