2016-03-02 113 views
1

因此,對於一個項目,我分配了一個簡單的HTML頁面,鏈接到一個JavaScript文件。在這個頁面上有3個整數輸入和2個按鈕。按鈕測試整數是否會形成三角形,第二個按鈕將測試整數是否形成直角三角形。javascript和html邏輯語句

現在我仍然遇到第一個按鈕的問題。 我使用的算法:
A + B> C
A + C> B
B + C> A

如果所有的這些都是真的那麼語句應該返回爲 「它形成了一個三角」其他人應該說明它不會返回一個三角形。

我想我有邏輯和設置的權利,但是當我去測試所有的條件將返回true。
任何幫助將不勝感激。對不起,如果我的代碼是草率的或沒有意義,我還在學習。

再次感謝。

HTML文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Triangle Tester</title> 
<script src="project3.js" type="text/javascript"></script> 
</head> 

<body> 

<div> 
<h1>Triangle Tester</h1> 
<p>Please input the length (integer) of the first side of the triangle: </p> 
    <input id="t1" type="text" size="3" /> 

<p>Please input the length (integer) of the second side of the triangle: </p> 
    <input id="t2" type="text" size="3" /> 

<p>Please input the length (integer) of the third side of the triangle: </p> 
    <input id="t3" type="text" size="3" /> 

<br/> 
<span id="answer"></span> 
<br/> 

<button onclick="compute1();">Can these three sizes form a triangle?</button> 
<button onclick="compute2();">Can these three sizes form a right triangle?</button>  
</div> 

</body> 
</html> 

JavaScript文件:

// JavaScript Document 
function compute1() 
{ 
    var in1 = document.getElementById("t1"); //A 
    var in2 = document.getElementById("t2"); //B 
    var in3 = document.getElementById("t3"); //C 
    var ans = document.getElementById("answer"); 

    if((in1.value+in2.value>in3.value)&& 
     (in1.value+in3.value>in2.value)&& 
     (in2.value+in3.value>in1.value)) 
    { 
     var result = "These three sides can form a triangle!"; 
     ans.innerHTML = result; 
    } 

    else 
    { 
     var result2 = "These three sides cannot form a triangle!"; 
     ans.innerHTML = result2;  
    } 
} 

function compute2() 
{ 
    return 0; 
} 

因此,任何幫助將真正理解。

+0

如果a,b和c都是相同的整數,會不會形成一個三角形? – adeneo

+2

無論如何,一個輸入的值總是一個字符串,所以當你做'「2」+「3」時,最終得到的結果是「23」而不是「5」,就像你期望的那樣 – adeneo

+0

你是什麼值從單個變量中獲取,你可以調試/警報和檢查嗎? – ryadavilli

回答

0

您需要將值解析爲數字 - 此刻所有輸入均爲文本,並且不能用於正確計算結果。假設你的算法是正確的,用途:

var in1Val=parseInt(in1.value); 
var in2Val=parseInt(in2.value); 
var in3Val=parseInt(in3.value); 

    if((in1Val+in2.value>in3Val)&& 
     (in1Val+in3Val>in2Val)&& 
     (in2Val+in3Val>in1Val))... 

如果有一個風險,即輸入值可能不是數值,您可以使用parseFloat和檢查NaN返回(如果有一個非整數根據輸入) 。希望這有助於Gavrif

+0

這完美的工作!不知道輸入是全部字符串,立即修復它。 – hmy