Js基础

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值