亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于switch里面表達式是不是必須是數值的問題

<body>

<script type="text/javascript">

var mes=prompt("請輸入星期","");


?if (mes==1|mes==2)

? ? document.write("學習理念知識");

else if (mes==3|mes==4)

? ? ?document.write("到企業實踐");

else if (mes==5)

? ? ?document.write("總結經驗");

else

document.write("回家帶娃");

?

/*

switch (mes)

{

?case 1:

?case 2:

?document.write("學習理念知識");

?break;

?case 3:

?case 4:

?document.write("到企業實踐");

?break;

?case 5:

?document.write("總結經驗");

break;

default:

?document.write("回家帶娃");

}

*/

</script>

</body>

想實現的是, 通過prompt輸入星期所對應數字,然后告訴你該做什么,用前面的if else 可以簡單實現, 但是用switch怎么都不能正常運行,我試過prompt返回值是數值啊,為什么switch不起作用?

另外還發現一個問題, 邏輯或 不是應該是 雙豎線“||” 嗎, 怎么這里用雙豎線反而是錯的, 用單實線是對的 if (mes==1|mes==2)

正在回答

2 回答

1. prompt返回值為字符串,case后面的值需要類型和數值都匹配。

? ? ? ?正確答案是:

case?"1":
case?"2":
????document.write("學習理念知識");
????break;

2. 邏輯或中 | 和 || 都是可以的

但是為了代碼更準確(返回值其實是字符串),請使用下面的代碼:

var?mes=prompt("請輸入星期","");

if?(mes=="1"||mes=="2")
????document.write("學習理念知識");
else?if?(mes=="3"||mes=="4")
?????document.write("到企業實踐");
else?if?(mes=="5")
?????document.write("總結經驗");
else
document.write("回家帶娃");


2 回復 有任何疑惑可以回復我~
#1

rainy_li3676598 提問者

非常感謝!
2016-09-23 回復 有任何疑惑可以回復我~

剛剛看了一下有個朋友也在問這個問題,我就試了一下, 給case里面的數值加上""就對了, 我可以這樣理解 嗎?


// prompt 獲取是的字符串,所以在case后面的值應該加"";

?如果是和一個數值進行比較, 還可以寫成這樣:?switch(parseInt(mes))

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于switch里面表達式是不是必須是數值的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號