怎么是这样的结果呢

来源:4-4 多种选择(Switch语句)

meto

2015-07-23 09:42

以下是我的代码,它怎么没有获取prompt中的值做判断,而是直接跳到default中了

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>switch</title>
<script type="text/JavaScript">
function week(){
    var myweek =prompt("请输入星期几");//myweek表示星期几变量
switch(myweek)
{
 case 1:
 case 2:
 document.write("学习理念知识");
 break;
 case 3:
 case 4:
 document.write("到企业实践");
 break;
 case 5:
 document.write("总结经验");
 break;
 case 6:
 case 7:
 document.write("周六、日休息和娱乐");
 default:
 document.write("您输入的信息有误");
}
document.write("<br>今天是星期"+myweek);
}
</script>
</head>
<body>
<button onclick="week()">点击查看周计划</button>
</body>
</html>

写回答 关注

3回答

  • 康振宁
    2015-07-23 10:09:32
    已采纳

    因为你输入后得到的myweek是一个字符串类型的,而在switch case中,你用的是数值型的,所以需要你把myweek转换成数值型

    meto

    迟到的感谢!加上parseInt就好了,但是,我还想再问一下,var 定义的变量默认为是字符串类型的吗

    2015-07-25 19:59:17

    共 2 条回复 >

  • qq_发条橙子_0
    2015-08-12 01:06:33
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>switch</title>
    <script type="text/JavaScript">
    var week=prompt("输入数字把");
    switch (week)
    { case 0:
      case 1:
      case 2:
      case 3:
          document.write(week+"是小于等于3的"+"<br>")
      break;
      case 4:
      case 5:
      case 6:
          document.write(week+"是大于3的"+"<br>")
      break;
      default:
         document.write(week+"是大于6的")
        
        }
    </script>
    </head>
    <body>
    </body>
    </html>

    我读取的就可以啊?是因为函数变了类型的原因吗?

  • meto
    2015-07-25 19:58:48

    迟到的感谢!加上parseInt就好了,但是,我还想再问一下,var 定义的变量默认为是字符串类型的吗

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468196 学习 · 21891 问题

查看课程

相似问题