rainy_li3676598
2016-09-23 14:11
<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)
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("回家带娃");
刚刚看了一下有个朋友也在问这个问题,我就试了一下, 给case里面的数值加上""就对了, 我可以这样理解 吗?
// prompt 获取是的字符串,所以在case后面的值应该加"";
如果是和一个数值进行比较, 还可以写成这样: switch(parseInt(mes))
JavaScript进阶篇
468190 学习 · 21891 问题
相似问题