2014-04-09 58 views
2

在以下JavaScript代碼中,您同時回答兩個問題,然後根據您的分數得出具體答案。根據分數計算並顯示結果

假設您爲第一個問題選擇了Yes,第二個問題選擇了Chocolate,您將獲得8分而不是顯示數字8,我希望顯示評論。這就是爲什麼我創建了if循環,但出於某種原因,JavaScript代碼沒有顯示任何內容,對解決方案有任何建議?

順便說一句,你可以找到下面的鏈接代碼:

http://jsfiddle.net/9N5ZV/

if (totalScore <=2) { 
    calculate = healthy; 
} else if (totalScore >= 3 && totalScore <= 6) { 
    calculate = average; 
} else { 
    calculate = unhealthy; 
} 
+3

'totalScore = <6'應'totalScore <= 6'。另外,如果你不能有兩個elses。 – j08691

+0

@ j08691,謝謝你的建議,我現在就試試。 – Acemi

+0

並且不叫它'if循環':)它不是一個循環,而是一個分支 – phylax

回答

2

你的條件語法是錯誤的,你使用變量超出範圍。

Demo

function getTotal() 
{ 
    var totalScore = getScoreCake() + getScoreChoco(); 
    document.getElementById('result').innerHTML = 
     //"Your total score is: "+totalScore; 
     getComment(totalScore); 
} 
function getComment(score) 
{ 
    if (score <=2) 
     return healthy; 
    else if(score >= 3 && score <=6) 
     return average; 
    else 
     return unhealthy; 
} 
+0

非常感謝你(也謝謝大家誰提出了一個結果),演示完美:) – Acemi

2

你需要一個else if

if (totalScore <=2) { 
    calculate = healthy; 
} else if (totalScore >= 3 && totalScore <= 6) { 
    calculate = average; 
} else { 
    calculate = unhealthy; 
} 

此外,使用控制檯!你會看到:

Uncaught SyntaxError: Unexpected number 

這是由於else (expr)條款,這是else if

1

你的條件語句有錯誤。應該是:

if (totalScore <= 2) { 
    calculate = healthy; 
} else if (totalScore >= 3 && totalScore <= 6) { 
    calculate = average; 
} else { 
    calculate = unhealthy; 
} 

這是更新的jsFiddle

編輯:

您沒有調用getComment函數。試試下面的內容,看看你如何輸出字符串。

http://jsfiddle.net/9N5ZV/5/

+0

非常感謝,但現在只是顯示分數,我希望它顯示保存在var unhealthy ='Unhealthy'的消息;所以不是顯示8而是顯示不健康。我不太確定爲什麼我的循環不工作。 – Acemi

+1

查看修訂後的答案。 – fanfavorite