js第二天

逻辑分支

条件控制语句

概述:

程序控制语句所有的语言都具备 ,主要分为循环控制语句(循环执行)和条件控制语句(根据不同的条件执行不同的内容)

常用的条件控制语句

  • if else (传递条件表达式 根据条件表达式来判断)

  • switch case (空间复杂度大于if else 时间复杂度小于if else 传入一个值 根据来进行匹配)

if else

if(条件表达式){
    //条件满足执行的内容
}else{
    //条件不满足执行的内容
}

示例

判断一个数值是否奇数还是偶数

//prompt 弹窗输入框返回的是你的输入值 他的类型是string
var n = prompt('请输入你需要验证的数值')
if (n % 2 == 0) {
    console.log('是偶数')
} else {
    console.log('是奇数')
}

else if 多条件

//else if
//用于判断的方法 isNaN
if(isNaN(Number(n))){
    console.log('输入出错')
}else if (n % 2 == 0) {
    console.log('是偶数')
} else {
    console.log('是奇数')
}

if else 只会进入第一个找到的满足条件的内容

//if else 只会进入其他的第一个满足的条件 后续的不执行
if(2>1){
    console.log('进来了')
}else if(3>2){
    console.log('来玩玩')
}

示例2

输入的范围为100-999 判断一个数是否为水仙花数 (153 1的三次方+5的三次方+3的三次方 = 153)

var n = prompt('请输入100-999之间的数值')
if(n>=100 && n<=999){
    //if else嵌套
    //取每一位的值
    var a = n%10 //个数
    var b = parseInt(n%100/10)//十位
    var c = parseInt(n/100)//百位
    if(a*a*a + b*b*b + c*c*c == n){
        console.log('是水仙花数')
    }else{
        console.log('不是水仙花数')
    }
}else{
    console.log('输入出错')
}

if else的嵌套

if else 允许多层嵌套 但是建议嵌套层级不要超过俩层

if(条件表达式){
    //true的时候走的
    if(条件表达式){
        ....
    }else{
        //false的时候走的
    }
}else{
    //false的时候走的
}

示例

判断输入的数值的奇偶

var n = prompt('请输入你需要验证的数值')
//用于判断的方法 isNaN
if(!isNaN(Number(n))){
    if (n % 2 == 0) {
        console.log('是偶数')
    } else {
        console.log('是奇数')
    }
}else {
    console.log('输入出错')
}

输入一个数 判断是否为3的倍数 以及是否是15的倍数(1-999)

// 输入一个数 判断是否为3的倍数 以及是否是15的倍数(1-999)
var printIn = prompt('请输入1-999之间的数值')
if(printIn >= 1 && printIn <= 999){
    //取余3 取余15
    if(!(printIn % 3)){//值为0的情况下进入 整除3
        console.log('他是3的倍数')
        //是否为15的倍数
        if(printIn % 5 == 0){
            console.log('他是15的倍数')
        }
    }else{
        console.log('不为3的倍数也不为15的倍数')
    }
}else{
    console.log('输入出错')
}

注意事项

  • if else他只会进入其中的一个条件中 不会同时进入俩个同级的代码块

  • if 里面的条件可以为表达式也可以为值 但是都会被强制转换为boolean类型

  • if else可以嵌套多层 一般建议嵌套不超过俩层(可读性 可维护性)

switch case

switch(值){
    case 值1:
        执行的代码
        break
    case 值2:
        执行的代码
        break
    ...
    default:
        上面都不满足的默认的执行代码
}

示例

根据输入的指令打印对应的操作

/*
某个空调有对应的开关 当你按下的开关键为1号键的时候 执行加热操作
按下2号键 执行制冷操作
按下3号键 执行通风操作
按下的键为其他 不执行操作
*/
var code = prompt('请输入你需要执行的指令')
switch (Number(code)) {
    case 1://单独的分支
        console.log('正在执行加热操作')
        break //break 跳出 结束这个switch块 后续的不再执行
    case 2:
        console.log('正在执行制冷操作')
        break
    case 3:
        console.log('正在执行通风操作')
        break
    default:
        console.log('错误指令 不执行操作')
}
  • switch 的值比对用到的是=== 必须要类型和值都一致

  • 每个case块都是一个分支 如果没有break那么会进入下一个分支

  • 多个分支可以执行一个操作

  • break用于跳出switch块 那么后续的分支不再执行

  • switch 不适用于范围内的比对

  • default 默认的执行 上面都不满足的情况下执行

switch块允许多层嵌套

switch(n){
    case 值1:
        switch(i){
            case 值1:
                ...
                break
        }
        break
    case 值2:
        ....
    default:
        ...
}

示例

判断一个输入值的奇偶

var n = prompt('请输入值')
//判断是否输入正确
switch(isNaN(Number(n))){
    case true:
        switch(n%2){
            case 0:
                console.log('偶数')
                break
            case 1:
                console.log('奇数')
                break
        }
        break
    case false:
        console.log('输入出错')
}

  • switch 适合实际的值的列举(枚举) if 使用范围内容条件判断

  • switch 空间复杂度高于if switch时间复杂度低于if

  • 枚举相当于一个箱子 箱子里面有很多对应的值 每个值有对应的名字
  • 箱子 --- 1号 2号 .... 通过列举的名字来获取里面的内容(里面内容为常量 (不变的量))

拓展


a ** n 表示a的n次方
PI = Math.Pi; PI 表示π
Math.pow(a,n)表示求一个a的n次方

若有收获,就点个赞吧

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值