關(guān)于switch里面表達(dá)式是不是必須是數(shù)值的問(wèn)題
<body>
<script type="text/javascript">
var mes=prompt("請(qǐng)輸入星期","");
?if (mes==1|mes==2)
? ? document.write("學(xué)習(xí)理念知識(shí)");
else if (mes==3|mes==4)
? ? ?document.write("到企業(yè)實(shí)踐");
else if (mes==5)
? ? ?document.write("總結(jié)經(jīng)驗(yàn)");
else
document.write("回家?guī)?);
?
/*
switch (mes)
{
?case 1:
?case 2:
?document.write("學(xué)習(xí)理念知識(shí)");
?break;
?case 3:
?case 4:
?document.write("到企業(yè)實(shí)踐");
?break;
?case 5:
?document.write("總結(jié)經(jīng)驗(yàn)");
break;
default:
?document.write("回家?guī)?);
}
*/
</script>
</body>
想實(shí)現(xiàn)的是, 通過(guò)prompt輸入星期所對(duì)應(yīng)數(shù)字,然后告訴你該做什么,用前面的if else 可以簡(jiǎn)單實(shí)現(xiàn), 但是用switch怎么都不能正常運(yùn)行,我試過(guò)prompt返回值是數(shù)值啊,為什么switch不起作用?
另外還發(fā)現(xiàn)一個(gè)問(wèn)題, 邏輯或 不是應(yīng)該是 雙豎線“||” 嗎, 怎么這里用雙豎線反而是錯(cuò)的, 用單實(shí)線是對(duì)的 if (mes==1|mes==2)
2016-09-23
1. prompt返回值為字符串,case后面的值需要類型和數(shù)值都匹配。
? ? ? ?正確答案是:
case?"1": case?"2": ????document.write("學(xué)習(xí)理念知識(shí)"); ????break;2. 邏輯或中 | 和 || 都是可以的
但是為了代碼更準(zhǔn)確(返回值其實(shí)是字符串),請(qǐng)使用下面的代碼:
var?mes=prompt("請(qǐng)輸入星期",""); if?(mes=="1"||mes=="2") ????document.write("學(xué)習(xí)理念知識(shí)"); else?if?(mes=="3"||mes=="4") ?????document.write("到企業(yè)實(shí)踐"); else?if?(mes=="5") ?????document.write("總結(jié)經(jīng)驗(yàn)"); else document.write("回家?guī)?);2016-09-23
剛剛看了一下有個(gè)朋友也在問(wèn)這個(gè)問(wèn)題,我就試了一下, 給case里面的數(shù)值加上""就對(duì)了, 我可以這樣理解 嗎?
// prompt 獲取是的字符串,所以在case后面的值應(yīng)該加"";
?如果是和一個(gè)數(shù)值進(jìn)行比較, 還可以寫(xiě)成這樣:?switch(parseInt(mes))