Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

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)

Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).

Warunek if (liczba > 100 && liczba <= 200) dobrze opisuje przedział (100, 200>, czyli taki, w którym 100 nie należy do zakresu, a 200 już należy. Dlatego po lewej stronie jest operator >, a nie >=. Liczba musi być większa od 100. Po prawej stronie jest <=, bo wartość 200 ma jeszcze przejść test. Operator && oznacza logiczne AND, czyli oba warunki muszą być spełnione jednocześnie. W praktyce taki zapis stosuje się np. przy sprawdzaniu progu punktów, ceny produktu, wieku użytkownika albo zakresu wartości wpisanej w formularzu. Moim zdaniem to jeden z tych warunków, które warto umieć pisać bez zastanawiania, bo w JavaScript pojawiają się non stop: w walidacji danych, obsłudze zdarzeń i prostych algorytmach. Dobrą praktyką jest też czytelne rozdzielanie porównań, zamiast próbować pisać coś w stylu 100 < liczba <= 200, bo w JavaScript taki zapis nie działa tak jak w matematyce szkolnej.
W tym zadaniu łatwo pomylić zapis matematyczny przedziału z operatorem logicznym w JavaScript. Przedział (100, 200> oznacza, że interesują nas tylko liczby większe od 100 i jednocześnie mniejsze lub równe 200. Słowo jednocześnie jest tutaj kluczowe, więc potrzebny jest operator &&, a nie ||. Operator || oznacza logiczne OR, czyli wystarczy spełnienie jednego z warunków. Zapis liczba > 100 || liczba <= 200 jest szczególnie zdradliwy, bo dla zwykłych liczb będzie praktycznie zawsze prawdziwy: liczba albo jest większa od 100, albo jest mniejsza lub równa 200. To nie ogranicza zakresu, tylko wpuszcza prawie wszystko. Z kolei warunek z liczba < 100 idzie w przeciwną stronę, bo sprawdza wartości poniżej dolnej granicy, a nie wewnątrz przedziału. Często wynika to z mechanicznego przepisania znaku nierówności bez zastanowienia, czy granica ma być otwarta czy domknięta. Zapis liczba < 100 && liczba <= 200 sprowadza się w praktyce do sprawdzania liczb mniejszych od 100, bo jeśli coś jest mniejsze od 100, to automatycznie jest też mniejsze lub równe 200. Warunek liczba < 100 || liczba >= 200 bardziej przypomina sprawdzanie wartości poza pewnym zakresem, ale też ma źle dobrane granice względem zadanego przedziału. W JavaScript warto zawsze rozbić takie zadanie na dwa pytania: jaka jest dolna granica i czy należy do przedziału, oraz jaka jest górna granica i czy należy do przedziału. Potem łączymy je przez &&, jeśli liczba ma spełniać oba ograniczenia naraz.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.