深入理解计算机系统_switch中case后范围

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说深入理解计算机系统_switch中case后范围,希望能够帮助大家进步!!! switch case语句是我们编程中常用的一个表达式。它的语法如下 1 : switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,执行此处语句 [break;] case

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说深入理解计算机系统_switch中case后范围,希望能够帮助大家进步!!!

switch case语句是我们编程中常用的一个表达式。它的语法如下1

switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,执行此处语句 [break;] case value2: // 当 expression 的结果与 value2 匹配时,执行此处语句 [break;] ... case valueN: // 当 expression 的结果与 valueN 匹配时,执行此处语句 [break;] [default: // 如果 expression 与上面的 value 值都不匹配时,执行此处语句 [break;]] } 
只听到从知秋君办公室传来知秋君的声音:

双飞燕子几时回?夹岸桃花蘸水开。有谁来对上联或下联?

我们平时基本也就是按照这个语法规则来写switch case。仔细想想里面其实有几个问题值得好好想想。

问题1: 每个case都需要一个break吗?
答: 不是。
详解: 首先搞清楚break的作用是跳出当前这个switch语句,执行switch case之后的代码。看下面一个例子:

此代码由一叶知秋网-知秋君整理
switch (color) {

case "red": console.log("red"); break; case "yellow": console.log("yellow"); default: console.log("unknown color"); }

如果输入color为red则输出结果:

red 

如果输入color为red则输出结果:

此代码由一叶知秋网-知秋君整理
yellow default color

从例子可以明显看出没有break的话则会从条件匹配的 case 语句开始运行,然后不论是否符合条件继续持续执行下一个 case 语句,直到遇到break或者执行完所有case。

但是这并不是说不能这样用,你可以使用这种方法来进行关联操作。

问题2: default必须放在最后吗?
答: 不是。
详解: default就是在所有其他case都不满足条件的情况下执行,不论你放在哪个位置都可以被执行。看下面两个例子:
例子1:

var color = "blue"; switch (color) { 

case "red": console.log("red "); break; case "yellow": console.log("yellow"); break; default: console.log("unknown color"); }

例子2:

var color = "blue"; switch (color) { 

case "red": console.log("red "); break; default: console.log("unknown color"); case "yellow": console.log("yellow"); break; }

你认为这两个例子的输出是一样的吗?

其实不一样,例子1的输出为:

unknown color 

例子2输出为:

unknown color yellow 

看到这里你应该大概懂了,其实default放在最后的最大好处就是可以省略一个break(结合问题1的解答)。而且default的本意就是在其他条件都不满足的条件下执行,放在最后其实也最便于理解。所以,在平时写代码的时候还是按照惯例乖乖的把default放在最后吧。

问题3: default是必须要有的吗?
答: 不是。
详解: 从语法上来说,default语句就不是必须的。在使用枚举值作为switch参数时,而且case已经列出了所有可能出现的值,此时default语句是不需要的。
但是如果有任何无法被考虑到的情况都应该加入default进行异常处理,否则这时候switch语句不会有任何输出,难以发现出错的地方在哪。

问题4: 每一个case下面可以执行多条语句吗?
答: 当然可以。
详解: 唯一的要求就是所有要执行的语句必须放在这条case分之下的break之前。

问题5: 什么时候使用switch case?什么时候使用if else?
答: 参见另外一篇文章。


  1. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/switch ↩︎

知秋君
上一篇 2024-07-03 15:31
下一篇 2024-07-03 15:31

相关推荐