Wskaż zapisany w języku JavaScript warunek, który sprawdza, czy spełnione są jednocześnie oba warunki: 1) liczba naturalna a jest liczbą dwucyfrową, 2) liczba całkowita b jest dodatnia.
A. ((a > 9) || (a < 100)) && (b > 0)
B. ((a > 9) && (a < 100)) || (b > 0)
C. ((a > 9) && (a < 100)) && (b < 0)
D. ((a > 9) && (a < 100)) && (b > 0)
Poprawny zapis to ((a > 9) && (a < 100)) && (b > 0). Warunek a > 9 sprawdza dolną granicę liczby dwucyfrowej, a a < 100 sprawdza górną granicę. Połączenie ich operatorem && oznacza, że oba porównania muszą być prawdziwe jednocześnie, czyli a mieści się w zakresie od 10 do 99. Druga część, b > 0, sprawdza dodatniość liczby całkowitej b. Zewnętrzny operator && łączy oba wymagania z treści zadania. W JavaScript && oznacza koniunkcję logiczną, a || alternatywę. Takie warunki stosuje się np. przy walidacji danych z formularza, gdy kilka ograniczeń musi być spełnionych naraz.
W tym zadaniu trzeba połączyć dwa wymagania operatorem koniunkcji, czyli &&. Zapis ((a > 9) || (a < 100)) && (b > 0) nie sprawdza poprawnie dwucyfrowości, ponieważ operator || wymaga spełnienia tylko jednego z porównań. Dla liczby naturalnej wiele wartości spoza zakresu 10-99 także spełni taki warunek, np. 150 spełnia a > 9. Zapis ((a > 9) && (a < 100)) || (b > 0) byłby trafny wtedy, gdy wystarczyłoby, aby a było dwucyfrowe albo b było dodatnie. Treść zadania wymaga jednak spełnienia obu warunków jednocześnie. Zapis ((a > 9) && (a < 100)) && (b < 0) poprawnie sprawdza dwucyfrowość a, ale bada, czy b jest ujemne, a nie dodatnie. Poprawny warunek to ((a > 9) && (a < 100)) && (b > 0). Typowy błąd polega na myleniu operatorów && i || albo na odwróceniu znaku nierówności przy sprawdzaniu dodatniości.