zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JS switch case语句

JS 语句 switch case
2023-06-13 09:12:02 时间
当判断语句存在 3 条或 3 条以上的分支语句时,也经常使用 switch 语句。if else if else 语句很多时候都可以使用 switch 语句代替,而且当所有判断都针对一个表达式进行时,使用 switch case 语句比 if else if else 语句更合适,因为此时只需要计算一次条件表达式的值。

switch 语句的基本语法如下:

switch (表达式){
  case 表达式1:
  语句块1;
  break;
  case表达式2:
  语句块2;
  break;
  case表达式n:
  语句块n;
  break;
  default:
  语句块n+1;
}

switch 后面的 表达式 可以是任意的具有某个值的表达式。case 关键字后面的值也可以是任意的表达式,实际中最常用的是某个类型的直接量。

switch 语句的执行流程是这样的:首先计算 switch 关键字后面的表达式,然后按照从上到下的顺序计算每个 case 后的表达式并和 switch 表达式的值进行比较。

当 switch 表达式的值与某个 case 表达式的值相等时,就执行此 case 后的语句块;如果 switch 表达式的值与所有 case 表达式的值都不相等,则执行语句中的 default: 的语句块;如果没有 default: 标签,则跳过整个 switch 语句。

另外,break 语句用于结束 switch 语句,从而使 JavaScript 只执行匹配的分支。如果没有 break 语句,则该 switch 语句的所有分支都将被执行,switch 语句也就失去了使用的意义。

需要注意的是:对每个 case 的匹配操作是 === 严格相等运算符比较操作,即两个表达式的值必须同时满足值和类型都相等才算相等。

下面使用 switch 语句修改 JS if else语句 一节中的例 5,代码如下所示。

【例 1】switch 语句的使用。


 !doctype html 

 html 

 head 

 meta charset= utf-8 

 title switch语句的使用 /title 

 script 

 window.onload = function (){

 var oText = document.getElementById( text1 

 var oBtn = document.getElementById( btn1 

 oBtn.onclick = function (){

 var score = oText.value; //获取文本框中输入的成绩

 switch(Math.floor(score/10)){ //除法操作使score字符串隐式转换为数字

 case 6:

 alert( 成绩及格! 

 break;

 case 7:

 alert( 成绩中等! 

 break;

 case 8:

 alert( 成绩良好! 

 break;

 case 9:

 case 10:

 alert( 成绩优秀! 

 break;

 default:

 alert( 成绩不理想! 

 /script 

 /head 

 body 

 body 

 请输入成绩: input type= text id= text1 / 

 input type= button id= btn1 value= 提交 / 

 /body 

 /html 

上述代码中的 floor(value) 方法是 Math 内置对象的一个方法,功能是返回一个小于等于参数 value 的最小整数,例如 Math.floor(89/10)=Math.floor(8.9)=8。可见如果成绩是分布在 1~100,则使用 floor(score/10) 方法可以得到每一段成绩对应的数字分别为 1~10,再通过判断 floor(score/10) 值为哪个数字就可以知道成绩的等级了。

上述代码首先计算 switch 中的表达式 Math.floor(score/10),然后将该值按从上到下的顺序依次跟 case 后面的值比较,如果相等,则执行该 case 后面的代码并退出 switch 语句;如果跟所有的 case 后面的值比较都不相等,则执行 default: 后面的语句块。需要注意的是,case9 后面没有 break 语句,这样当 switch 表达式的值是 9 时,程序会执行完 case9 后继续执行 case10,然后跳出。

需要注意的是:例 1 只针对输入的值在 0~100 之间有效,如果超出 100,则判断结果出错。对 0~100 之间的输入值,运行结果如下图所示。

成绩输出结果
图 1:成绩输出结果

23954.html

htmljavaJavaScript