switch分支语句合并相同功能的case语句 |
您所在的位置:网站首页 › c语言,case › switch分支语句合并相同功能的case语句 |
Write By Monkeyfly 以下内容均为原创,如需转载请注明出处。 前提描述: 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: 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: //code... 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 关键词来规定匹配不存在时做的事情。即匹配失败时默认要执行的代码。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |