2017-06-16 291 views
0

憋屈一個javascript開關分配。我對這些東西還是比較陌生的,但似乎無法在課本或在線上找到任何可以使本程序正常工作的東西。任務是切換if語句來切換代碼。任何幫助或建議將不勝感激。JavaScript的switch語句的年齡範圍

var myAge = prompt("Enter your age:", "30"); 

switch (myAge) { 

    case myAge! >= 0: 
    case myAge <= 10: 
    document.write("myAge is NOT between 0 and 10 <br />"); 

    case myAge >= 0: 
    case myAge <= 10: 
    document.write("myAge is between 0 and 10 "); 
    break; 

    case myAge >= 80: 
    case mmyAge <= 10: 
    document.write("myAge is 80 or above or 10 or below "); 
    break; 

    case myAge >= 30: 
    case myAge <= 39: 
    document.write("myAge is between 30 and 39 "); 
    break; 

    case myAge >= 80: 
    case myAge <= 89: 
    document.write("myAge is between 80 and 89 "); 
    break; 
} 
+1

你錯過了一個破';!'在第一種情況下 –

+1

你需要用'開關(真){'來匹配您的布爾表達式的情況下和'>'是不是有效的運營商 –

+0

@Community ...很抱歉,但是這顯然是一個不同的問題...讓我們把它放在這樣:你認爲什麼cameragrl37從87輸入期望...... 我會說,他預計3封郵件......這個?不能寫入一個開關! – fedeghe

回答

0

確保您使用的是int,而不是一個字符串,以防萬一做:

var myAge = parseInt(prompt("Enter your age:", "30")); 

並確保您添加break;語句所有case秒。

第一case刪除!字符:myAge!myAge

你得到什麼確切的錯誤?

0

在第一個「案例myAge」比較操作不起作用。如果你試圖說它不等於,你應該把!=,而不是!> =。

0

我認爲可以工作......但

------------------------- OLD ANSWER

嘗試以下;順便說一句你確定你需要document.write

var myAge = ~~prompt("Enter your age:", "30"), 
    msg = []; 
switch (true) { 

    case myAge < 0 && myAge > 10: 
     msg.push("myAge is NOT between 0 and 10"); 

    case myAge >= 0 && myAge <= 10: 
     msg.push("myAge is between 0 and 10"); 

    case myAge >= 80 || myAge <= 10: 
     msg.push("myAge is 80 or above or 10 or below"); 

    case myAge >= 30 && myAge <= 39: 
     msg.push("myAge is between 30 and 39"); 

    case myAge >= 80 && myAge <= 89: 
     msg.push("myAge is between 80 and 89"); 
} 
document.write(msg.join('<br />')); 

,但不是,這裏的原因:首先 是很清楚,你想獲得更多的那一個驗證消息; 偏偏這個不能寫在一臺交換機的原因運行不止一個,你應該刪除break;但是這意味着第一個滿足的原因不管條件如何要執行所有followinfg的...

說,你有移動到「多,如果」可能看起來如下:

var myAge = parseInt(prompt("Enter your age:", "30"), 10), 
    msg = []; 

if (myAge < 0 && myAge > 10) 
    msg.push("myAge is NOT between 0 and 10"); 
if (myAge >= 0 && myAge <= 10) 
    msg.push("myAge is between 0 and 10"); 
if (myAge >= 80 || myAge <= 10) 
    msg.push("myAge is 80 or above or 10 or below"); 
if (myAge >= 30 && myAge <= 39) 
    msg.push("myAge is between 30 and 39"); 
if (myAge >= 80 && myAge <= 89) 
    msg.push("myAge is between 80 and 89"); 

console.log(msg.join("\n")); 
+0

缺少'break;'? –

+0

沒有......如果他需要級聯...因爲它看起來 – fedeghe

0

你失蹤break和錯字mmyAge。並傳遞給switch

var myAge = parseInt(prompt("Enter your age:", "30")); 
 
age(myAge); 
 
function age(myAge){ 
 

 
    switch (true) { 
 
     
 
     case (myAge >= 0 && myAge <=10): 
 
      document.write("myAge is NOT between 0 and 10 <br />"); 
 
     break; 
 
     case myAge >= 0 && myAge <= 10: 
 
      document.write("myAge is between 0 and 10 "); 
 
      break; 
 

 
     case myAge >=80 && myAge <=10: 
 
      document.write("myAge is 80 or above or 10 or below "); 
 
      break; 
 

 
     case myAge >= 30 && myAge <=39: 
 
      document.write("myAge is between 30 and 39 ");    
 
      break; 
 

 
     case myAge >= 80 && myAge <= 89: 
 
      document.write("myAge is between 80 and 89 "); 
 
      break; 
 
     default: 
 
       console.log(myAge); 
 
     } 
 
     
 
    }

+0

感謝我錯過了:)現在都工作,你們所有的岩石。這是我在這裏的第一次經歷,它確實幫助了我。 :) – cameragrl37

+0

你也可以接受答案。如果有幫助 –