选择逻辑:基于不同的条件来执行不同的动作

单路选择:if语句

  • if的语法规则:先执行if代码块。如果结果为true就执行if中的代码。如果结果为false就不执行if代码块。
  • 所谓的代码块,就是用{}围起来的一块代码
if(条件)
{
    //只有当条件为true时执行的代码
}
例如:

if(score >= 60){
    feedback = "congratulations!you got the exam.";
}

二路选择:if…else语句

  • else的语法规则:如果else之前if都判断为false,就执行else中的代码
if(条件){
    //条件为true时执行代码
}else{
    //条件为false时执行的代码
}
例如:

if(score >= 60){
    console.log("恭喜你,通过了考试!");
}else{
    console.log("不好意思,你挂科了!");
}

多路选择:if…else if…else语句

  • 如果ifelse中只有一个语句,可以省略其后的{}
  • 可以把else if理解为一个else分支中有一个if判断
if(条件1){
    //当条件1为true时执行的代码
}else if(条件2){
    //当条件2为true时执行的代码
}else{
    //先条件1和条件2都不为true时执行的代码
}
例如:

if(score >= 80){
    console.log("你的评级是:优");
}else if(score >= 60 && score < 80){
    console.log("你的评级是:良");
}else{
    console.log("你的评级是:差");
}
  • 如果是else结尾的选择逻辑,那么一定会有一路分支被执行。
  • 如果没有最后一个else,有可能一个分支都不执行。
  • if-else与三目运算?:是有本质区别的。三目运算是运算符,可以用来赋值,而if-else是逻辑控制语句。

if 的嵌套

  • if里面嵌套 if,或者if-else
  • else里面可以嵌套 if,或者if-else
  • if( score >= 60){
        if(score <= 80){
            console.log("你的评级是:良");
        }else{
            console.log("你的评级是:优");
        }
    }else{
        if(score <= 30){
            console.log("你简直差得没边了!");
        }
        console.log("不好意思,你挂科了!");
    }
    

if - else的匹配

  • 选择分支只有三种方式开头ifelseelse if
  • if表示一个新的选择逻辑的开始。
  • else不能单独存在,它和之前的if一起形成一个选择逻辑。
  • 当选择了一条分支后,选择逻辑就不会去判断其他的分支了。
  • if (score >= 80)
    {
        console.log("你的评级是:优");
    }
    if (score >= 60 && score <= 80)
    {
        console.log("你的评级是:良");
    }
    if (score < 60)
    {
        console.log("你的评级是:差");
    }
    // 这样写执行效果也对,但效率低了。
    // 这里有三个if语句,表示有三个选择逻辑。
    // 当第一个if判断为true后,后面两个if还会继续判断。
    

小结:if - else语句 与 三目运算符
  • if- else 能实现 与 三目运算符一样的效果,后者更简洁
  • //用变量 a,b,c分别代表 身高、财富、颜值。标准:高 a>=180,富 b>=100, 帅 c>=80.
    var a = 180;
    var b = 100;
    var c = 80;
    //高&&富&&帅
    //用if语句实现
    if(a >= 180 && b >= 100 && c >= 80){
        console.log("嫁");
    }else{
        console.log("不嫁!");
    }
    //用三目运算符实现
    console.log((a >= 180 && b >= 100 && c >= 80)?"嫁""不嫁");
    
  • 两者的本质不同,前者是语句,后者是运算符。这意味着三目运算符可以与赋值运算符“=”组成算术表达式,而 if-else 不可以。

results matching ""

    No results matching ""