switch语句
switch语句也是多分支语句,功能与if…else if语句类似,不同的是它只能针对某个表达式的值作出判断,从而决定执行哪一段代码。switch语句的特点就是代码更加清晰简洁、便于阅读。具体语法及示例如下。
switch ( 表达式 ) { case 值1 代码段1; break; case 值2 代码段2; break; ... default: 代码段n; }
var num = 1; switch (num + 1) { case 1: console.log('结果为1'); break; case 2: console.log('结果为2'); break; default: console.log('结果未知'); }
在上述语法中,首先计算表达式的值,然后将获得的值与case中的值依次比较,若相等,则执行case后的对应代码段。最后,当遇到break语句时,跳出switch语句。若没有匹配的值,则执行default中的代码段。其中,default是可选的,表示默认情况下执行的代码段,可以根据实际需要来设置。
switch语句的执行流程如图1所示。
图1 switch语句流程图
下面我们通过判断学生成绩等级的案例演示switch语句的使用。使用变量score保存学生成绩分数,满分为100分,90~100为优,80~89为良,0~79分为差。具体代码如下。
1 var score = prompt('请输入0~100范围内的数字');
2 switch (parseInt(score / 10)) {
3 case 10:
4 console.log('满分');
5 case 9:
6 console.log('优');
7 break;
8 case 8:
9 console.log('良');
10 break;
11 default:
12 console.log('差');
13 }
在上述代码中,第2行的表达式用来将用户输入的值简化成0~10之间的数字,以方便在case中进行比较。第4行后面没有添加break,会继续执行case 9中的代码,直到遇到break结束,此时在控制台中会出现“满分”和“优”两个结果。