Strona główna › Pytania INF.03 › Pytanie 1320
INF.03 · pytanie #1320
W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.<br><br><pre class="code-block">var x = 5; var y = 3; if (x = y) document.getElementById("demo").innerHTML = "zmienne są równe"; else document.getElementById("demo").innerHTML = "zmienne się różnią";</pre>
- AW instrukcji if znajduje się przypisanie zamiast operacji porównania
- BPrzed instrukcją else nie powinno być średnika
- CZmienne zostały błędnie zadeklarowane
- DPolecenia w sekcjach if i else powinny zostać zamienione miejscami
Poprawna odpowiedź: A. W instrukcji if znajduje się przypisanie zamiast operacji porównania
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.