2015-10-03 55 views
-1

下面是一個等級計算器,它會使用if/else語句將輸入的數字附加一個字母等級。如果輸入了超出範圍號碼或非數字值,我無法找到顯示錯誤消息的方法。有什麼建議麼?謝謝!如何在JavaScript中使用等級計算器時顯示錯誤消息?

var entry; 
    var letterGrade; 

    entry = prompt("Enter number grade from 0 through 100\n" + 
        "Or enter 999 to end entries", 999); 
    entry = parseInt(entry); 

if (entry <= 59) 
    letterGrade = "F"; 
else if (entry >= 60 && entry <= 69) 
    letterGrade = "D"; 
else if (entry >= 70 && entry <= 79) 
    letterGrade = "C"; 
else if (entry >= 80 && entry <= 89) 
    letterGrade = "B"; 
else if (entry >= 90 && entry <= 100) 
    letterGrade = "A"; 

    alert("Number grade = " + entry + "\n" + 
      "Letter grade = " + letterGrade); 
+1

什麼'isNaN'? – tymeJV

+0

嘗試添加'}其他{//錯誤在這裏}'我還建議使用''''和'}'來更容易地看到你的if條件打開/關閉。使用'} else {'會讓你返回一個錯誤,就是上面的條件不符合。 – NewToJS

回答

1

嗯,你超出範圍會是什麼> 100,因此您可以覆蓋與其他中底:

[..] 
else if (entry >= 90 && entry <= 100) 
    letterGrade = "A"; 
else 
    alert("Error, your number " + entry + " was out of range (>100)"); 

至於它不是一個數字,你可以請使用isNaN() :

if(isNaN(entry)){ 
    alert("That was not a number!"); 
else { 
    if (entry <= 59) 
     letterGrade = "F"; 
    .... 
} 

編輯:我看到你輸入> 0 < 101以抓住你需要添加到您的第一個if語句負數:

if (entry >= 0 && entry <= 59) 
+0

這個工程!超出範圍數字的警報效果很好,但第二個警報仍然會彈出。有沒有辦法避免這種情況發生,甚至提出最初的提示? –

+0

要解決它,你需要在你的if語句中包含你的提醒。所以如果(entry> = 0 && entry <= 59){letterGrade =「F」; alert(「Number grade =」....); }(注意它是如何在if的大括號內的)如果想了解更多關於這個概念的內容,請閱讀關於範圍如何工作的基本教程,這個現象適用於函數,類和什麼不太好,並且是編程中的一個重要概念:) – Dennis

0

添加覆在一開始,看是否entry是一個有效的輸入:

if(isNaN(entry) || entry < 0 || entry > 100) 
    alert('Only a grade between 0 and 100 is allowed'); 

var entry 
 
, letterGrade; 
 

 
entry = parseInt(prompt("Enter number grade from 0 through 100\n" + 
 
        "Or enter 999 to end entries", 999)); 
 
if(isNaN(entry) || entry < 0) 
 
    alert('Only a grade between 0 and 100 is allowed'); 
 
else if (entry <= 59) 
 
    letterGrade = "F"; 
 
else if (entry >= 60 && entry <= 69) 
 
    letterGrade = "D"; 
 
else if (entry >= 70 && entry <= 79) 
 
    letterGrade = "C"; 
 
else if (entry >= 80 && entry <= 89) 
 
    letterGrade = "B"; 
 
else if (entry >= 90 && entry <= 100) 
 
    letterGrade = "A"; 
 

 
    alert("Number grade = " + entry + "\n" + 
 
      "Letter grade = " + letterGrade);

相關問題