(a=0, b>0)
не является допустимым условием.a = 0
- это присвоение, которое должно быть либо a == 0
, либо a === 0
, а ,
не служит оператором AND
, &&
делает.Поэтому вам нужно изменить это условие на что-то вроде (a === 0 && b > 0)
.
Но вы можете упростить свой код и использовать лучшие условия, а также улучшенную манипуляцию с DOM.Вот как вы можете это сделать.
- используйте
Number.isNaN
, чтобы проверить, является ли данный вход действительным числом - добавить
<span id="output"></span>
, чтобы сохранить результат, легчеманипулируйте им, чем весь абзац - просто используйте
.textContent
, если вам нужно добавить простой текст к некоторому элементу
Этот код гарантированно выполнит вычисления тогда и только тогда, когда точноПредусмотрено 2 стороны, а третья - NaN
(пустая, но также недопустимая цифра)
function do_things() {
var a = parseFloat(document.getElementById("a").value);
var b = parseFloat(document.getElementById("b").value);
var c = parseFloat(document.getElementById("c").value);
var output = document.getElementById("output");
if (Number.isNaN(a) && !Number.isNaN(b) && !Number.isNaN(c)) {
const a = Math.sqrt(c ** 2 - b ** 2);
output.textContent = ' ' + a;
}
if (Number.isNaN(b) && !Number.isNaN(a) && !Number.isNaN(c)) {
const b = Math.sqrt(c ** 2 - a ** 2);
output.textContent = ' ' + b;
}
if (Number.isNaN(c) && !Number.isNaN(a) && !Number.isNaN(b)) {
const c = Math.sqrt(a ** 2 + b ** 2);
output.textContent = ' ' + c;
}
}
<h1>Calc</h1>
<p1>Calculate the Hypotnuse given the A and B value</p1>
<p>Side A: <input type="text" id="a"/></p>
<br>
<p>Side B: <input type="text" id="b"/></p>
<br>
<p>Hypotnuse: <input type="text" id="c"/></p>
<br>
<button type="button" onclick="do_things()">Find the missing value</button>
<br>
<p >The Missing side is: <span id="output"></span></p>