switch分⽀语句合并相同功能的case语句
前提
描述:
switch 语句⽤于:根据⼀个变量的不同取值,来执⾏不同的代码。
语法:
switch(n)
{
case 1:
执⾏代码块 1
break;
case 2:
执⾏代码块 2
break;
default:
如果以上条件都不满⾜,则执⾏该代码;
}
如果多个 case 语句都执⾏相同的功能代码时,应该怎么处理呢?【可以做如下理解】
如何给 case 语句传多个值?
switch 分⽀结构中⼀个 case 语句可以跟多个值吗?
switch 语句中 相同的 case 能合并么?
实现
我的写法如下:【错误写法】
switch(month){
case 1 || 3 || 5 || 7 || 8|| 10 ||12:
console.log(month+"⽉有31天");
break;
case 4 || 6 ||9 ||11:
console.log(month+"⽉有30天");
break;
default:
console.log(month+"⽉有28天");
}
于是我就习惯性的使⽤了 JavaScript 中的逻辑运算符 || (或) 来实现的。
注:逻辑运算符⽤于测定变量或值之间的逻辑。
发现问题
刚开始写的时候没注意这个写法有没有问题,因为⾃⼰也是第⼀次这么写。
今天在测试功能时,经过调试才发现了该问题:当变量的值符合 这个 case 语句中的表达式判断时,它并没有执⾏该 case 语句,⽽是直接执⾏了 default 语句。
当错误发⽣的时候,我才意识到:有可能是当初 case 语句 的表达式判断写的有问题。如果多个变量的取值都对应同⼀种处理情况时,我选择了使⽤ 逻辑运算符 || (或)来实现。写的时候也不知道对错,凭印象写的。
解决问题
经过百度搜索⼀番才发现,并不是这么⼲的。原来是语法写错了,根本就没有我那样的写法。
从搜索结果来看,有不少⼩伙伴都有过我这种类似的写法,看来这个现象还是会经常发⽣的,⼀不留神就写错了。
究其根本,还是对基础语法掌握的不熟练,否则怎么可能犯这种低级的错误呢?
正确的书写语法如下:
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
switch case判断字符串case 10:
case 12:
console.log(month+"⽉有31天");
break;
case 4:
case 6:
case 9:
case 11:
console.log(month+"⽉有30天");
break;
default:
console.log(month+"⽉有28天");
}
看到这,我才恍然⼤悟, 合并多个相同功能的 case 语句 原来是这么写的。
//这才是正确的写法
case 1:
case 3:
case 5 :
case 7:
//
break;
结束语
⾄此,问题就已经被解决了。
switch 结构说明:
switch、case、break、default 都是系统关键字,都必须全⼩写。
switch后的⼩括号( ):⼩括号内⼀般是⼀个变量名,这个变量可能会有不同的取值。
每个 case 的值都会与变量的值进⾏对⽐,看是否相等,如果⼀致就执⾏该 case 语句对应的代码。
所有的 case 都是 “或”(or) 的关系,每时每刻只有⼀个 case 会满⾜条件。
每个 case 中的代码执⾏完毕后,必须要⽤ break 语句来阻⽌代码⾃动地向下⼀个 case运⾏。
如果不写 break 语句的话,下⾯所有的 case 语句都会执⾏⼀遍。
请使⽤ default 关键词来规定匹配不存在时做的事情。可省略不写。
switch ⼯作原理:
⾸先设置表达式 n(通常是⼀个变量)。
随后表达式的值会与结构中的每个 case 的值做⽐较。如果存在匹配,则与该 case 关联的代码块会被执⾏。
请使⽤ break 来阻⽌代码⾃动地向下⼀个 case 运⾏。
请使⽤ default 关键词来规定匹配不存在时做的事情。即匹配失败时默认要执⾏的代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论