day2:运算符表达式及相关控制语句

本文介绍了编程中的控制语句,包括条件控制(if...else,switch...case)和循环控制。详细讲解了条件表达式、算术表达式和逻辑运算符的用法,并通过实例演示了如何使用这些语句进行条件判断。同时,提到了if...else和switch...case的适用场景和比较,以及在编写代码时的注意事项,如类型转换和嵌套限制。
摘要由CSDN通过智能技术生成

控制语句是对应程序的一个控制,它分别对应条件控制语句和循环控制语句

条件控制语句:根据对应的条件来执行语句

循环控制语句:根据对应的条件能够多次循环重复执行

表达式

概述:由算术运算符拼接成的公式

算术表达式:算法运算符拼接的表达式

例 1+1

条件表达式:比较运算符拼接的表达式

例 1+1>1

关系表达式逻辑运算符拼接的表达式

例 1+1>2 && 1+3>4

运算符执行顺序

实例:

    <script>
        var i = 20
        i++
        var j = 10+29+(++n)-(n++)/10+30%7-5*3>10 && 20-15*29/18>13-(n++)/n+''+109 ? 18-
        (2-4)*3+undefined-true+(n++) : n-(n++)*3+false+true //-47
        console.log(n)//25
    </script>

条件控制语句

常见的条件控制语句:

if...else...(根据对应的Boolean条件值进行判断,将不是Boolean的条件转换为bool类型)

switch...case...(根据对应的值来进行比对 里面采用的是恒等于=== 会自动进行比对)

if else

if(条件表达式){
    对应满足条件的代码
}else{
    不满足条件执行的代码
}

多分支结构 (else if)

多分支结构只要上面有一个满足了条件 之后的条件都不会再运行

if(条件1){
    满足条件的代码
}else if(条件2){
    满足条件的代码
}...
else{
    所有条件都不满足执行的代码
}

if else的嵌套

if else允许多层嵌套 一般不超过两层

if(条件1){
    if(子条件1){
        满足子条件1执行的代码

    }else if(子条件2){
            满足子条件2的代码
        }else{
                不满足子条件执行的代码
            }
}else{
    不满足条件1执行的代码
}

if else 例题讲解(判断一个数是否为3的倍数,同时是否为5的倍数,范围1-999):

    <script>
        var n = prompt('请输入1-999之间的数')
        if(n>=1 && n<=999){
            if(n%3 == 0){
                if(n%15 == 0){
                    console.log('是三的倍数也是十五的倍数')
                }else{
                    console.log('是三的倍数不是十五的倍数')
                }
            }else{
                    console.log('不是三的倍数也不是十五的倍数')
            }
        }else{
            console.log('输入错误')
        }
        
    </script>

判断是不是水仙花数:

    <script>
        var n = prompt('请输入一个数')
        var bw = parseInt(n/100)
        var sw = parseInt((n/10)%10)
        var gw = parseInt(n%10)
        var flower = bw*bw*bw+ sw*sw*sw +gw*gw*gw
        if(isNaN(Number(n))){
            console.log('输入错误')
        }else if(n>999 || n<100){
            console.log('数字输入错误')
        }else if(flower == n){
            console.log('水仙花')
        }else{
            console.log('不是水仙花')
        }
    </script>
    

注意事项:

  • 当你的if块或者else块只有一行代码的时候可以省略{}符号
  • if else语句的嵌套建议不超过两层
  • if else中只会进入其中一个条件 
  • !isNaN()操作可以检测输是不是NaN 能给输入的值进行判断将NaN剔除出去
  • prompt 能弹出一个弹窗 是String类型

switch case 

switch(值表达式){
    case 值1;
    执行的代码
    break;
    case 值2;
    执行的代码
    break;
    default:
        上面都不满足执行的代码
}

switch case 例题讲解(小学生之手):

    <script>
        
        switch(prompt('请输入你的操作')){
            case 'Q':
                console.log('大杀四方')
                break
            case 'W':
                console.log('致残打击')
                break
            case 'E':
                console.log('大杀四方')
                break
            case 'R':
                console.log('弄克萨斯段抬头')
                break
            case 'A':
            case 'click':
                console.log('平')
                break
            default:
                console.log('defeat')
        }
    </script>

注意事项:

1、switch里面采用的===值和类型必须相等

2、必须添加break 跳出当前switch语句 不加则会继续执行后续分支

3、switch支持多层嵌套

4、default用来存放不满足前面条件的所执行的代码

5、当输入的条件想要Number类型的话-0或者*1可以代替Number()转为number类型

if else 和 switch 的比对

  • if else常用于区间判断 switch case用于值判断(枚举判断)
  • switch case 空间复杂度大于 if else switch case 时间复杂程度小于 if else
  • if else 的效率低于switch case (用于空间交换)如果当前只有值的判断建议使用switch case

总结:

  • if 里面的条件返回的是Boolean类型 如果不是会自动转成bool类型
  • if else 适用于区间判断 switch case 适用于值判断
  • switch case里面采用的判断是恒等判断 类型和值都必须相同
  • if 可以单独使用
  • if 的多分枝结构采用else if来实现 
  • if else中只会进入其中一个条件 后面的条件都不会再进入
  • !isNaN()操作可以检测出是不是NaN 能给输入的值进行类型判断将NaN剔除出去
  • prompt 能弹出一个弹窗 是String类型
  • switch case可以实现多层嵌套
  • 当你的if块或者else块只有一行代码的时候可以省略{}符号 不建议省略
  • 每句代码结束的分号可有可无 一般建议加上 (后续为了减少编写的文件的大写会把js代码写在一行 加上分号便于分辨)
  • if else 和switch case都支持嵌套 (if一般建议不要嵌套两层以上)
  • switch case 空间复杂度大于 if else switch case 时间复杂程度小于 if else

枚举:枚举相当于一个箱子 箱子里面有对应的值 值是固定的(常量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值