2、逻辑分支

103 阅读4分钟

程序

  • 程序 = 程序语句 + 数据结构 + 算法
  • QQ截图20220816171252.jpg 结尾分号在js中统一不写,更简洁,无需像java一样规范

逻辑分支语句

  • 我们的 js 代码都是顺序执行的(从上到下)
  • 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码

IF 条件分支结构

if 语句

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

  • 语法: if (条件) { 要执行的代码 }

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

  • if语句块只有一行代码时,大括号可以省略

    // 条件为 true 的时候执行 {} 里面的代码
    if (true) {
      alert('因为条件是 true,我会执行')
    }
    ​
    // 条件为 false 的时候不执行 {} 里面的代码
    if (false) {
        alert('因为条件是 false,我不会执行')    
    }
    

if else 语句

  • 通过 if 条件来决定,执行哪一个 {} 里面的代码

  • 语法: if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }

  • 两个 {} 内的代码一定有一个会执行

    
    // 条件为 true 的时候,会执行 if 后面的 {} 
    if (true) {
      alert('因为条件是 true,我会执行')
    } else {
      alert('因为条件是 true,我不会执行')
    }
    ​
    // 条件为 false 的时候,会执行 else 后面的 {}
    if (false) {
      alert('因为条件为 false,我不会执行')
    } else {
      alert('因为条件为 false,我会执行')
    }
    

if嵌套语句if嵌套语句

 if语句嵌套
          if(条件表达式){
              语句块
              if(条件){
              语句块
              }
          }

if else if ... 语句

  • 可以通过 if 和 else if 来设置多个条件进行判断

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

  • 会从头开始依次判断条件

    • 如果第一个条件为 true 了,那么就会执行后面的 {} 里面的内容
    • 如果第一个条件为 false,那么就会判断第二个条件,依次类推
  • 多个 {} ,只会有一个被执行,一旦有一个条件为 true 了,后面的就不在判断了

    
    // 第一个条件为 true,第二个条件为 false,最终会打印 “我是代码段1”
    if (true) {
      alert('我是代码段1')
    } else if (false) {
        alert('我是代码段2')           
    }
    ​
    // 第一个条件为 true,第二个条件为 true,最终会打印 “我是代码段1”
    // 因为只要前面有一个条件满足了,就不会继续判断了
    if (true) {
      alert('我是代码段1')
    } else if (true) {
      alert('我是代码段2')
    }
    ​
    // 第一个条件为 false,第二个条件为 true,最终会打印 “我是代码段2”
    // 只有前一个条件为 false 的时候才会继续向后判断
    if (false) {
      alert('我是代码段1')
    } else if (true) {
      alert('我是代码段2')
    }
    ​
    // 第一个条件为 false,第二个条件为 false,最终什么也不会发生
    // 因为当所有条件都为 false 的时候,两个 {} 里面的代码都不会执行
    if (false) {
      alert('我是代码段1')
    } else if (false) {
      alert('我是代码段2')
    }
    

if else if … else 语句

  • 和之前的 if else if ... 基本一致,只不过是在所有条件都不满足的时候,执行最后 else 后面的 {}

    
    // 第一个条件为 false,第二个条件为 false,最终会打印 “我是代码段3”
    // 只有前面所有的条件都不满足的时候会执行 else 后面的 {} 里面的代码
    // 只要前面有一个条件满足了,那么后面的就都不会执行了
    if (false) {
      alert('我是代码段1')
    } else if (false) {
      alert('我是代码段2')
    } else {
      alert('我是代码段3')
    }
    

练习

1、比较多个数的最大值

编程思想: 假设第一个数是最大值,依次让后的数与最大值比较,如果后面的数比最大值max大,将值赋值给
max,依次比较完之后,max中保存所有数中的最大值
        var a=54
        var b=67
        var c=89
        var max=a
        if(max<b){
            max=b
        }
        if(max<c){
            max=c
        }
        console.log('max=',max);

2、判断一个整数是偶数还是奇数,并输出判断结果

        var n = 51
        if (n % 2 == 0) {
            console.log('n为偶数');
        } else {
            console.log('n为奇数');
        }

3、开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动,来观察测试者体重是否达标

        var h=160
        var w=100
        var wb=(h-108)*2
        var output
        if(w>wb+10){
            output='偏重'
        }else if(w<wb-10){
            output='偏瘦'
        }else{
            output='达标'
        }
        console.log('身高'+h+'厘米'+'体重'+w+'的人体重为'+output);

5、输入年份,计算某一年是否是闰年 (闰年能被4整除并且不能被100整除,或者能被400整除)

        var year=2022
        if((year%4==0&&year%100!=0)||(year%400==0)){
            year1='是闰年'
        }
        else{
            year1='不是闰年'
        }
        console.log(year+'年'+ year1);

6、 输入数字,显示星期几( 假设本月一号是周一 )

        var day = 15
        if (day % 7 == 1) {
            week = '一'
        }
        if (day % 7 == 2) {
            week = '二'
        }
        if (day % 7 == 3) {
            week = '三'
        }
        if (day % 7 == 4) {
            week = '四'
        }
        if (day % 7 == 5) {
            week = '五'
        }
        if (day % 7 == 6) {
            week = '六'
        }
        if (day % 7 == 7) {
            week = '日'
        }
        console.log(day + '号是星期' + week);

7、输入分数,判定成绩等级 (成绩对应等级 90-100:A级 80-89:B级 70-79:C级 60-69:D级 其它:不合格)

        var score = 64
        var grade
        if (score >= 90 && score <= 100) {
            grade = 'A'
        }
        if (score >= 80 && score <= 89) {
            grade = 'B'
        }
        if (score >= 70 && score <= 79) {
            grade = 'C'
        }
        if (score >= 60 && score <= 69) {
            grade = 'D'
        }
        if (score < 60){
            grade = '不合格'
        }
        console.log(score + '分的等级为' + grade);

SWITCH 条件分支结构

switch

  • 也是条件判断语句的一种

  • 是对于某一个变量的判断

  • 语法:

    
    switch (要判断的变量) {
      case 情况1:
        情况1要执行的代码
        break
      case 情况2:
        情况2要执行的代码
        break
      case 情况3:
        情况3要执行的代码
        break
      default:
        上述情况都不满足的时候执行的代码
    }
    
    • 要判断某一个变量 等于 某一个值得时候使用
  • 例子: 根据变量给出的数字显示是星期几

    
    var week = 2
    switch (week) {
      case 1:
        alert('星期一')
        break
      case 2:
        alert('星期二')
        break
      case 3:
        alert('星期三')
        break
      case 4:
        alert('星期四')
        break
      case 5:
        alert('星期五')
        break
      case 6:
        alert('星期六')
        break
      case 7:
        alert('星期日')
        break
      default:
        alert('请输入一个 1 ~ 7 之间的数字')
    }
    

switch穿透

匹配相应分支,执行case分支中语句,如果没遇到break语句,继承执行下一个分支,

        switch(值){
            case1:
                分支执行的代码
            case2:
                分支执行的代码
            case3:
                分支执行的代码
                [break]  // 结束switch语句
            ...
            default:
                // 默认分支执行代码
        }
  • 例子:输入年份和月份,显示该年当月的天数, 利用case穿透简化代码
        var year=2022
        var month=6
        var day
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                day=31
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                day=30
                break;
            default:
                if((year%4==0&&year%100!=0)||(year%400==0)){
                    day=29
                }else
                    day=28
                    break;
        }
        console.log(year+'年'+month+'月有'+day+'天');

三元运算(扩展)

  • 三元运算,就是用 两个符号 组成一个语句
  • 三元运算只是对 if else 语句的一个简写形式
  • 语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行
    var age = 18;
    age >= 18 ? alert('已经成年') : alert('没有成年')
    
  • 例子:求三个数34,56,27最大值,使用三元运算实现 2.jpg

单步调试

检查里的sources,没有就在检查右下角的more tools里的含sources处