0

我正在尝试使用 HTML 和 Javascript 编写勾股定理计算器,以便它可以找到给定两个边值的任何边,所以我正在使用 if 语句,但似乎我无法理解为什么它不起作用

这是 HTML 和 JavaScript 代码

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 (a=0, b>0){
    var c = Math.sqrt(c*c - b*b)
    var node = document.createElement("LI");                 // Create a <li> node
    var textnode = document.createTextNode(c);              // Create a text node
    node.appendChild(textnode);                              // Append the text to <li>
    document.getElementById("output").appendChild(node);
  } else if (c=0, b>0){
    var c = Math.sqrt(a*a + b*b)
    console.log(0)
    var node = document.createElement("LI");                 // Create a <li> node
    var textnode = document.createTextNode(c);              // Create a text node
    node.appendChild(textnode);                              // Append the text to <li>
    document.getElementById("output").appendChild(node);
  }
}
<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 id="output">The Missing hypotnuse</p>

4

2 回答 2

0

'===' 在这里可能会返回 false,因为您正在将值解析为浮点数,这将给出 0.00。

于 2018-06-10T19:56:32.637 回答
0

(a=0, b>0)不是有效条件。a = 0是赋值,它应该是a == 0ora === 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>

于 2018-06-10T20:00:00.023 回答