js之条件分支语句

一.条件分支语句-if

1.分支结构

a.我们的js代码都是顺序执行的(从上到下)

b.逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码

2.if语句

a.原理:

通过一个if语句来决定代码是否执行

if(条件){要执行的代码} 

通过()里面的条件是否成立来决定{}里面的代码是否执行

b.if的数据转换

if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型。
让我们回顾一下 类型转换 一章中的转换规则:
数字 0 、空字符串 "" null undefined NaN 都会被转换成 false 。因为它们被
称为 假值( falsy 值。
其他值被转换为 true ,所以它们被称为 真值( truthy

例如:

        var sum=190
        var youhuisum
        if(sum>200){
            youhuisum=sum-10
        }
        console.log(sum,youhuisum)

注意:如果满足条件就会继续运算大括号内的内容,如果不满足条件那运行结果就是undefined的了,因为变量未参与运算没被赋值定义。

但也可以用else分支来解决这一问题:

如:

        var sum=190
        var youhuisum
        if(sum>200){
            youhuisum=sum-10
        }else{
            youhuisum=sum
        }

        console.log(sum,youhuisum)

 即使不满足if语句也会继续去运行else给未定义的变量赋值。

3.多个条件:“else if”

a.语法原理:if(条件1){条件1为true的时候执行}else if(条件2){条件2为true的时候执行}

else if可以写多个。

例如:
        var sum1=190
        var youhuisum1
        if(sum>200){
            youhuisum1=sum1-10
        }else if(sum>100){
            youhuisum1=sum1-5
        }else if(sum>50){
            youhuisum1=sum1-3
        }else if(sum<50){
            youhuisum1=sum1
        }
        console.log(sum1,youhuisum1)

结果为190,180
4.if的相关应用
例一.
        //判断奇数偶数
        //数学:能整除2的就是偶数,否则就是奇数
        var n=9
        if(n%2===0){
            console.log("偶数")
        }else{
            console.log("奇数")
        }

例二.

        //根据0-100的数字输出成绩
        /*
        [90,100] 输出 A
        [80,90] 输出 B
        [70,80] 输出 C
        [60,70] 输出 D
        [0,60] 输出 E
        */
       var a=83
        if(a>=90){
            console.log("A")
        }else if(a>=80){
            console.log("B")
        }else if(a>=70){
            console.log("C")
        }else if(a>=60){
            console.log("D")
        }else if(a>=0){
            console.log("E")
        }

在这里要注意大于小于号的连用,因为代码是从左往右运行的,如果连用会先运算左边的值返回结果后再进行右边值的运算,例如上面90-100条件的表示方法,如果写成90<=a<100,a=83会先与90进行比较并返回布尔值,因为83小于90,返回的布尔值是就是0,之后再拿0和100去比较,这样就会与预期效果完全偏离。

正确的表示方法应该是if(90 <= a  && a < 100),这样写的好处就是只有当a的值两边都满足的时候才会使if的条件成立。

二.条件分支语句-switch

1.作用:

switch 语句可以替代多个 if 判断。
switch 语句为多分支选择的情况提供了一个更具描述性的方式。

2.语法:

a.switch 语句有至少一个 case 代码块和一个可选的 default 代码块。

b.比较 x 值与第一个 case (也就是 value1 )是否严格相等,然后比较第二个 case ( value2 )以此类推。

c.如果相等, switch 语句就执行相应 case 下的代码块,直到遇到最靠近的 break 语句(或者直到 switch 语句末尾)。
d.如果没有符合的 case,则执行 default 代码块(如果 default 存在)。
e.如果没有 break ,程序将不经过任何检查就会继续执行下一个 case

3. 例子

        let a = 2 + 2;
        switch (a) {
        case 3:
            alert( 'Too small' );
            break;
        case 4:
            alert( 'Exactly!' );
            break;
        case 5:
            alert( 'Too large' );
            break;
        default:
            alert( "I don't know such values" );
        }

结果就是Exactly!

如果把break全部去掉,则会输出变量符合条件的所有语句。

注意:

a.注意看给变量所赋值的类型。

b.不能省略break。

4.switch相关案例

        //满200减100 满100减50 满50减30

        var sum=120
        var youhuisum

        switch (true) {
            case sum>200:
                youhuisum=sum-100
                break;
            case sum>100 && sum<200:
                youhuisum=sum-50
                break;
            case sum>50 && sum<100:
                youhuisum=sum-10
                break;
            case sum<50:
                youhuisum=sum
                break;    
            default:
                break;
        }
        document.write(youhuisum)

这里要注意一点即括号内不能直接填变量名,因为要用case的内容和括号内写的匹配,不能那表达式和sum变量直接匹配。

        //根据1-12的数字来输出一个月有多少天,不考虑闰年
        var month=12
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:    
                document.write("31天")
                break;
            case 2:
                document.write("28天")
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                document.write("30天")
                break;
            default:
                break;
        }

遇到多个相同的case执行结果可以累加多个case减少代码量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值