Js基础

来源:互联网 发布:网络传播推广方案 编辑:程序博客网 时间:2024/05/21 08:03

JavaScript中switch-case语句的用法

首先,在介绍之前,我先跟大家说一下它的基础语法:

switch(值){   变量的值或是数据值    case 值1:        要执行的代码;        break;    case 值2:        要执行的代码;        break;    ...    default:        要执行的代码;        break;}

执行过程:
程序执行到switch处的小括号,先计算里面的值,拿着计算后的定值,依次和case中的值进行匹配,如果匹配成功,则执行此case里面的代码,执行完毕之后,遇到break,则跳出当前结构,如果匹配都不成功,则要看当前结构当中有没有default,如果有的话,则进入到default处执行里面的代码,如果没有,则跳出当前结构,执行后面的代码。

不知道你们有没有晕,反正我看到这概念我是晕了。我说一下的见解吧:其实就是拿case后面的值和switch处小括号的值做比较,只要两个值是全等于(===)(下面会跟你们介绍,先看着先),那么就会执行case下面的代码段。没错就是这么简单!


===(全等于)

顾名思义,全等于比较的不仅仅是值,还有两个数据的类型的比较,如果类型都不一样,那么两个数据就无可比性了


废话不多说,上一段代码就明白了…

  对学员的结业考试成绩评测    成绩>=90 :A     90>成绩>=80 :B        80>成绩>=70 :C     70>成绩>=60 :D     成绩<60   :E
var score = prompt("请输入学员的考试成绩评测");  //成绩var level;      //评测等级switch(!!score){  //这里的!!是把score这个数据从字符串隐式转为布尔值,当然,这里直接写true完全没问题。    case score >= 90:  //score >= 90 这是一个关系表达式,会得到一个布尔值的结果        level = 'A';        break;    case score >= 80:        level = "B";        break;    case score >= 70:        level = "C";        break;    case score >= 60:        level = "D";        break;    default:        level = "E";        break;}// 1. 假如我输入的是91 // 2. 往下走会得到一个“91”的字符串(prompt()这个函数返回的值是字符串)// 3. !!"91"会变成true(也就是布尔类型)// 4. 而case后面的语句"score >= 90"也会得到一个布尔类型的值,同样是true(91本来就大于90)// 5. 两个true一比较,类型和值完全相等,所以就执行了score >= 90:后面的代码了console.log("学员的成绩为:"+score+",评测等级为:"+level)

switch-case多用于定值之间的使用,像这种定区间问题,一般用if-else-if比较方便一点,下面,我就演示一下这题用switch-case的定值的做法:

var score = prompt("请输入学员的考试成绩评测");  //成绩var level;      //评测等级switch(parseInt(score / 10)){  // 1. 这里的score/10是为了获取到score的十位数上的值// 2. 然后用parseInt()函数去掉小数得到一个整数。// 3. 这样一来,我们就把一个区间的值给定下来了。// 4. 例如:在>=90这个区间,我输入99,根据score/10得到9.9,// 5. 然后parseInt()再把小数去掉,就得到9了,// 6. 也就是说,不过我输入九十几,最终只能得到9,对应的也就是level = "A"这段代码得到了执行。    case 9:        level = "A";        break;    case 8:        level = "B";        break;    case 7:        level = "C";        break;    case 6:        level = "D";        break;    case 5:        level = "E";        break;    case 4:        level = "E";        break;    case 3:        level = "E";        breakcase 2:        level = "E";        break;      case 1:        level = "E";        break;    case 0:        level = "E";        break;    default:        level = "A";        break;}console.log("学员的成绩为:"+score+",评测等级为:"+level)
原创粉丝点击