W instrukcji warunkowej języka JavaScript należy sprawdzić przypadek, gdy zmienne a oraz b są dodatnie, z czego zmienna b jest mniejsza od 100. Warunek taki powinien być zapisany w następujący sposób:
if (a > 0 && b > 0 && b < 100) ...
&&: a dodatnie, b dodatnie i b mniejsze od 100.if (a>0 || (b> 0 && b<100)) ...
|| pozwala przy dodatnim a na dowolne b.if (a>0 || b> 0 || b > 100) ...
|| sprawiają, że wystarczy dodatnie a, a b może mieć dowolną wartość.if (a > 0 && b > 0 || b > 100) ...
|| z warunkiem b > 100 dopuszcza duże wartości b, np. 500, a b ma być mniejsze od 100.Pytanie z egzaminu CKE, październik 2016 (arkusz E.14-X-16.08).
Warunek ma trzy części i wszystkie muszą być spełnione naraz: a > 0, b > 0 oraz b < 100. „Jednocześnie” w JavaScript zapisuje się operatorem &&, więc poprawny warunek to a > 0 && b > 0 && b < 100. Dwie ostatnie części razem oznaczają, że b leży w przedziale (0, 100).
Zadania tego typu najszybciej rozwiązuje się, rozbijając zdanie na pojedyncze porównania i łącząc je &&, gdy w treści jest „i”, „oraz”, „z czego”. Operator || pojawia się dopiero przy słowie „lub”. Sprawdzenie na liczbach: dla a = 5 i b = 50 wynik to true, dla a = 5 i b = 150 już false.
Każda błędna odpowiedź ma w środku operator ||, przez co do spełnienia warunku wystarcza jedna jego część, a treść wymaga wszystkich.
Zapis z b > 0 || b > 100 ma dodatkowo odwrócony znak: zamiast ograniczać b od góry, dopuszcza wartości powyżej 100. Dla a = 5 i b = 500 dałby true. Zapis złożony z samych || przepuściłby niemal wszystko, wystarczyłoby dodatnie a.
Najbardziej podchwytliwy jest wariant a > 0 || (b > 0 && b < 100). Część w nawiasie jest poprawna, ale połączenie jej z a przez || sprawia, że przy dodatnim a zmienna b może mieć dowolną wartość, nawet ujemną. Treść mówi, że obie zmienne mają być dodatnie, więc a i b muszą być połączone &&.
Praktyczna metoda: zapisz w notatce każde wymaganie z treści osobno, a potem połącz je tak, jak łączy je zdanie. Zwykle wychodzą same operatory &&.