js分支语句

一、逻辑分支(选择结构,分支结构)

  • 其实今天的课程才算开始涉及到逻辑
  1. 程序的三大结构
  • 顺序结构 - 每天
    • 代码逐行执行,一行一行自上而下执行
  • 分支结构
    • 有选择了,十字路口的选择,只能选择一个,如果...否则...
  • 循环结构 - 后话
    • 重复,重复执行多次,起因:无聊,然后开始:吃,胖,心情不好,吃,胖....
  1. 分支语句
  • 分支和循环结构,需要配合一些专用代码才能实现,专用代码叫:语句

  • if:单分支

    • if(条件){执行语句}
  • if else:双分支

    • if(条件){条件为true时,要执行的语句}else{条件为false时,要执行的语句}
    • 分支的嵌套(双分支模拟的多分支)
      • 在执行体内,可以继续写其他分支
      • if(条件1){}else if(条件2){}else if(条件3){}else......
  • if的小括号里面也会发生隐式类型转换规则

    • 规则:其他转布尔
      • 数值转布尔:非0为true,0为false
      • 字符转布尔:非空字符,为true,空字符,为false
      • 对象转布尔:对象为true
      • 数组转布尔:数组为true
      • 函数转布尔:函数为true
      • 特殊数据转布尔:undefined,NaN,null都为false
          if( false ){
              console.log("真");
          }else{
              console.log("假");
          }
      
  • switch:多分支

    • 语法:
      var n = 2;
      var msg = "";
      switch(Number(n)){
          case 0:
              msg = "星期日";
              break;
          case 1:
              msg = "星期一";
              break;
          ...
          default:
              msg = "你输入的数字不对,请输入0~6之间的数字";
      }
      console.log(msg);
      
    • 规则:
      • 当要判断的值是固定的数据时,选择使用switch

        • 如果要判断的值是范围时,选择使用if-else
      • switch的case判断,不存在隐式类型转换

        • 某些情况下,需要根据场景,选择是否需要主动转换
      • 如果你不管上面的使用建议,非要使用switch判断范围,注定要多掉点头发

        • 使用switch判断范围
        var cj = 45;
        switch( true ){
            case cj<60:
                console.log("不及格");
                break;
            case cj>=60 && cj<70:
                console.log("及格");
                break;
            default:
                console.log("以上case都没执行");
        }
        
    • 某些问题需要利用switch的case的穿透特性,解决 ...后话
posted @ 2020-04-26 22:49  YY1028  阅读(334)  评论(0)    收藏  举报