Strona główna › Pytania INF.03 › Pytanie 1152
INF.03 · pytanie #1152
W ramce przedstawiono kod JavaScript z błędem logicznym. Program powinien wypisywać informację, czy liczby są sobie równe czy nie, lecz nie wykonuje tego. Wskaż odpowiedź, która dotyczy błędu. <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 klauzuli if występuje przypisanie zamiast porównania.
- BNieprawidłowo zadeklarowano zmienne.
- CInstrukcje wewnątrz sekcji if oraz else powinny być zamienione miejscami.
- DPrzed klauzulą else nie powinno być średnika.
Poprawna odpowiedź: A. W klauzuli if występuje przypisanie zamiast porównania.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Gratulacje! Poprawnie zauważyłeś, że w klauzuli if występuje przypisanie zamiast porównania. W JavaScript, operatorem przypisania jest pojedynczy znak równości (=), natomiast operatorem porównania jest podwójny (==) lub potrójny znak równości (===). W przypadku prezentowanego kodu, zamiast porównać wartości zmiennych x i y, wartość zmiennej y jest przypisywana do zmiennej x, co prowadzi do błędu logicznego. Jest to typowy błąd, który często występuje, szczególnie u początkujących programistów. W praktyce, aby nie pomylić operatorów, warto zawsze umieszczać wartość stałą po lewej stronie operatora porównania - wtedy próba przypisania wartości stałej zwróci błąd kompilacji. Dodatkowo, niektóre narzędzia do analizy statycznej kodu, takie jak ESLint, mogą pomóc w wykrywaniu tego typu błędów.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.