文章导航

JavaScript switch 语句

2018-9-4 03:03| 作者: admin| 查看: 2584| 评论: 0|来自: 蚂蚁部落

switch是流程控制语句,与if else非常类似。

可以根据是否满足指定的条件,来决定是否执行指定的语句。

相关阅读:

(1).if语句可以参阅JavaScript if else 语句一章节。

(2).两者的区别可以参阅JavaScript switch与if语句的区别一章节。

语法结构:

[JavaScript] 纯文本查看 复制代码运行代码
switch(表达式){
  case 表达式一:
    代码语句
    break;     
  case 表达式二:
    代码语句
    break; 
  case 表达式三:
    代码语句
    break; 
  default:
    代码语句
}

语法结构分析如下:

(1).switch后面小括号中是一个表达式,可以计算出一个值。

(2).大括号中,每一个case后面也有一个表达式,同样可以计算出一个值。

(3).switch后面表达式的值会与case后面表达式的值比较,如果相同,那么执行对应case后面的代码。

(4).case后面代码执行完毕之后,如果后面有break,则直接跳出整个switch语句。

(5).如果没有break,则继续进行switch和case后面表达式的比较,然后如此反复。

特别说明:default比较贪婪,只要给它机会,后面的语句就会被执行,比如它前面的条件都不满足,default后面的语句就获得执行的机会,还有即便前面有满足条件的case,但是没有break出语句,那么default后面的语句也会执行,把握机会能力比较强。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
let num=3
switch(num){
  case 1:
    console.log("num等于一");
    break;     
  case 2:
    console.log("num等于二");
    break; 
  case 3:
    console.log("num等于三");
    break; 
  default:
    console.log("蚂蚁部落");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/04/030500rgnl8t4a5lp7y587.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

switch后面的表达式num返回值是3,那么与第三个case相匹配,执行与它关联的语句。

打印出"num等于三"只会,执行break跳出整个switch。

[JavaScript] 纯文本查看 复制代码运行代码
let num=3
switch(num){
  case 4:
    console.log("num等于一");
    break;     
  case 5:
    console.log("num等于二");
    break; 
  case 6:
    console.log("num等于三");
  default:
    console.log("蚂蚁部落");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/04/030536kojeoojzpepobpe8.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

由于没有一个case可以匹配,那么default将成为接盘侠。

最终执行与default相关联的代码,打印出"蚂蚁部落"。

[JavaScript] 纯文本查看 复制代码运行代码
let num=3
switch(num){
  case 1:
    console.log("num等于一");
    break;     
  case 2:
    console.log("num等于二");
    break; 
  case 3:
    console.log("num等于三");
  default:
    console.log("蚂蚁部落");
}

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/04/030611xenqnjdx7j7ngdij.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面的代码中,即便有case匹配成功,但是依然会执行default相关联的代码。

因为case关联的代码没有break,也就是没有跳出switch语句,这样会继续语句的执行。

default把握机会的能力比较强,只要给它机会就会执行与它关联的代码。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部