章节
问答
课签
笔记
评论
占位
占位

多种选择(Switch语句)

当有很多种选项的时候,switch比if else使用更方便。

语法:

switch(表达式)
{
case值1:
  执行代码块 1
  break;
case值2:
  执行代码块 2
  break;
...
case值n:
  执行代码块 n
  break;
default:
  与 case值1 、 case值2...case值n 不同时执行的代码
}

语法说明:

Switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。

假设评价学生的考试成绩,10分满分制,我们按照每一分一个等级将成绩分等,并根据成绩的等级做出不同的评价。

代码如下:

执行结果:

评语: 及格,加油!

注意:记得在case所执行的语句后添加上一个break语句。否则就直接继续执行下面的case中的语句,看以下代码:

执行结果:

评语: 继续努力!
评语: 及格,加油!
评语: 凑合,奋进
评语: 很棒,很棒
评语: 高手,大牛

在上面的代码中,没有break停止语句,如果成绩是4分,则case 5后面的语句将会得到执行,同样,case6、7-10后面的语句都会得到执行。

任务

我们来做个周计划,周一、二学习理念知识,周三、四到企业实践,周五总结经验,周六、日休息和娱乐。请根据星期几做出选择,使用Switch语句完成,补充右边代码编辑器中第8、20、21行代码,完成星期几的判断。

?不会了怎么办

使用switch进行选择

case进行条件匹配

break 结束当前 case中的语句

||
1
2
<!DOCTYPE HTML>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

已采纳回答 / 爱guo好少年
2个错误:第一个是return的用法你在了解一下,return后面的语句不会执行。第二个是switch循环,在这个结构中并没有明确的区分,你的case1,case2条件不成立,所以会重复执行。你把return去掉就可以输出重复的结果了。所以建议使用if条件判断

已采纳回答 / MxGenesis
当然一致了,JS就是模仿C的语法设计的!

已采纳回答 / 晓之蛇
对的,只用一次switch case即可

已采纳回答 / ly今夕何夕
prompt里你输入的不管是数字还是其他符号,它都会当成字符串的类型,如果你实在想要用prompt的话,

你可以使用字符串转换成int的方法 不过只能转化被当成 字符串的纯数字(如:var num=“...

最赞回答 / 网_课_慕
document.write("周六、日休息和娱乐");default: document.write("填错了")}default这样用

最新回答 / 网_课_慕
switch是语句case值麻烦你好好看,看不懂,问的时候好好提问,没码的孩纸

最新回答 / 盲心Mxin
所有的编程语言都有相似的部分,但是JavaScript和java是完全不同的两回事,没有关系,只是数据结构类似。

已采纳回答 / 秃是不存在的
prompt的返回值是string类型,具体操作需要一点修改。

已采纳回答 / Ta丶知道答案
用你的代码在我这边显示结果是正确的<...图片...>

最赞回答 / 慕移动5405750
思路是非常正确的,只是有两个地方小粗心。首先default后面应该是冒号:而不是分号;其次myweek获取的值为string类型而不是int。也就是说你的case 1:case 2:应该写成case '1':case '2':(后面的也一起改了)。修改后的代码为:<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><...

最赞回答 / qq_龘_2
 是数据类型的问题,,,你获取的应该是字符串类型,而你在case后面直接写数字,js就会判断成数字类型,和字符串比较都会判断成false,转换一下类型或者直接把case后面的数字套个引号,如: case '6':

最赞回答 / 阳火锅
以老夫30多年的经验来看的话,你能问出这种问题说明你对函数不是很理解。。函数用通俗的话讲就是一个要执行动作的程序块。。 调用函数就是要调用这个动作。。 我看你aweek()这个函数里面只写了一个var myweek =document.getElementById("a").value。 取输入框的值然后赋值给变量。。 然后这个变量要用于干什么呢?  你却写到了函数外面去了。。那你说说,你调用这个函数,这个函数能帮助你做什么? 所以说你需要把下面那一段也写到函数里面去。。就是你用来做判断的那一段

最赞回答 / KingToAce
如果使用switch语句只是要判断区间范围的话,可以对变量数进行适当的收缩,就是除以10的n倍(n代表缩放的大小),收缩之后所得的就是数的区间范围了,然后对区间范围进行判断

已采纳回答 / 陈木辛王耑
改为 var myweek =document.getElementById("a").value; 然后在switch中改为parseInt(myweek)应该就可以了

已采纳回答 / 慕虎4258581
prompt 获取到的是字符串,解决方法一:使用parseInt()转换;(var myweek = parseInt(prompt("输入日期")) ;方法二:将 case 1  改为  case '1';(建议将 case 7 执行后的语句加上 break;)
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言