在JavaScript中,选择结构共有2种方式: if语句和switch语句。上一节介绍了if语句,这一节我们再来给大家介绍一下switch语句。

语法:

switch(判断值) { case 取值1: 语块1;break; case 取值2: 语块2;break; …… case 取值n: 语块n;break; default: 语句块n+1; }

说明:

从英文意思角度来看,switch是“开关”,case是“情况”,break是“断开”,default是“默认”。小伙伴们根据英文意思来理解就很容易了。

switch语句会根据“判断值”来判断,然后来选择使用哪一个case。如果每一个case的取值都不符合,那就执行default的语句。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> var day = 3; var week; switch (day) { case 1: week = "星期一"; break; case 2: week = "星期二"; break; case 3: week = "星期三"; break; case 4: week = "星期四"; break; case 5: week = "星期五"; break; case 6: week = "星期六"; break; default: week = "星期日"; } document.write("今天是" + week); //输出今天是星期几 </script> </head> <body> </body> </html>

浏览器预览效果如图所示。

分析:

在switch语句中,系统会从第1个case开始判断,直到找到满足条件的case就会退出,然后后面的case就不会执行了。

对于switch和case,大家都知道是怎么一回事,却不太理解break和default有什么用。下面我们通过两个例子来理解一下。

举例:break语句

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> var day = 5; var week; switch (day) { case 1: week = "星期一"; case 2: week = "星期二"; case 3: week = "星期三"; case 4: week = "星期四"; case 5: week = "星期五"; case 6: week = "星期六"; default: week = "星期日"; } document.write(week); //输出今天是星期几 </script> </head> <body> </body> </html>

浏览器预览效果如图所示。

分析:

day的值为5,为啥最终输出的是“星期日”呢?其实,这就是缺少break语句的结果。

实际上,在switch语句中,首先会判断case的值是否符合day的值。因为day的值为5,因此会执行“case 5”这一分支。但是,由于没有在“case 5”后面加break语句,因此程序还会把后面的“case 6”以及“default”都执行了,后面week的值会覆盖前面week的值,因此最终输出的是“星期日”。

break语句用于结束switch语句,从而使JavaScript仅仅执行对应的一个分支。如果没有了break语句,则该switch语句中“对应的分支”被执行后还会继续执行后面的分支。因此,对于switch语句,一定要在每一个case语句后面加上break语句。一定记住!

举例:default语句

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> var n = 10; switch (n) { case 1: document.write("你选择的数字是:1"); break; case 2: document.write("你选择的数字是:2"); break; case 3: document.write("你选择的数字是:3"); break; case 4: document.write("你选择的数字是:4"); break; case 5: document.write("你选择的数字是:5"); break; default: document.write("你选择的数字不在1~5之间"); } </script> </head> <body> </body> </html>

浏览器预览效果如图所示。

分析:

在这个例子中,我们使用default来定义默认情况,因此无论n的值是10、12还是100,最终执行的也是default这一个分支。

此外,case后面的取值不仅仅是数字,也可以是字符串等。switch语句在实际开发中是非常重要的,建议大家认真掌握。