Tips:这个只是作者的学习笔记,仅作参考  

目录

一、if分支

(一)、单分支

(二)、双分支

(三)、多分支

        if案例-成绩判断 

 (四)、if语句补充

二、switch分支

        (一)、switch多路判断

        (二)、switch穿透写法

三、三元计算


什么是逻辑分支?

        也就是我们对事物进行判断时的可能性,假设:如果我是个男的,那我就是个靓仔。那么这句话就是一个单分支。再假设,如果我是个男的,那我就是个靓仔,否则就是个肥仔,此时是梁总可能性进行判断,所以这就是双分支。那么那些更多可能性的便称之为多分支。

一、if分支

(一)、单分支

        语法:如果怎样怎样,就怎样怎样

        if(条件表达式){

                    当这个条件成立,执行该代码

                }

        例代码如下:简写可以直接不要大括号包裹,但一般为了可读性,还是会加上

        var age = 18
        if (age > 18) {
            alert('你成年了')
        }
        // 简写
        var age = 20
        if (age >= 18)
            console.log('成年');

(二)、双分支

         句式:如果怎样怎样,就怎样怎样,否则就怎样

if(条件表达式){

            当这个条件成立,执行该代码

       }else{

            当条件不成立时,执行该代码

       }

        例代码如下:

        if (age < 18) {
            alert('不准去网吧')
        } else {
            alert('随便去')
        }
        //简写 
        var age = 17
        if (age >= 18) console.log('成年');
        else console.log('未成年');

(三)、多分支

        句式:与if else大差不差,就是多了几个如果。多分支可以有若干个else if,else根据需要可以有也可以没有

                if (条件表达式) {

                    当这个条件成立, 执行该代码

                } else if (条件表达式2) {

                    当上一条条件不成立但这条成立时, 执行该代码

                } else if (条件表达式3) {

                    当上一条条件不成立但这条成立时, 执行该代码

                } else (条件表达式4) {

                    当所有条件都不成立但这条成立时, 执行该代码

                }

 例代码如下:

        var money = 1000
        if (money > 1000) {
            alert('去洗脚')
        } else if (money > 200) {
            alert('吃顿好的')
        } else if (money > 50) {
            alert('点杯奶茶')
        } else {
            alert('啥事没有')
        }

        if案例-成绩判断 

        var num = Number(prompt('请输入成绩'))
        if (!isNaN(num)) {
            if (num >= 0 && num < 60) {
                alert('不及格')
            } else if (num >= 60 && num <= 70) {
                alert('及格')
            } else if (num > 70 && num <= 80) {
                alert('良好')
            } else if (num > 80 && num <= 90) {
                alert('优秀')
            } else if (num > 90 && num <= 100) {
                alert('别读了')
            } else {
                alert('你在输入什么?')
            }
        } else {
            alert('输入不规范')
        }

 (四)、if语句补充

         if语句进行多个判断不是必须嵌套多个else if,别的也可以,包括他自己

        例如:

 // 分支的嵌套   if里面能再套if
        var a = 9
        var b = 5
        var c = 3
        if (a > b) {
            if (a > c) {
                alert('a最大')
            } else {
                alert('a最大')
            }
        } else {
            if (b > c) {
                alert('b最大')
            } else {
                alert('c最大')
            }
        }

        布尔类型可以直接当做条件表达式使用

        // 布尔类型可以当条件表达式使用
        if (true) {
            console.log(123);
        }

       也可以直接输入数字,0为false,1(包括)以上会识别为true

         // 在这里的数字,隐士转换成了布尔类型true
        if (2) {
            console.log('你好');
        }
        // 0转成布尔类型会是flase,所以会输出后者
        if (0) {
            console.log('你好');
        } else {
            console.log('世界');
        }

二、switch分支

        (一)、switch多路判断

        因为总会遇到多个分支,如果一直用if else又会让事情变得麻烦,所以在面对更多的选项的时候switch会比if else好用。

        Tips:使用多路判断的时候,能使用switch进行判断,就尽量使用switch,因为switch的判断都是确定的值,条件比较简单,所以效率高

        使用场景:

         如果判断的条件比较复杂,使用if
        条件是确定的值,分两种情况:
         如果判断的分支小于等于3个,就使用if,这时候的效率和switch一样
        如果大于3个,就使用switch。
         switch判断使用的是
全等于(===)

        语法:

                switch (变量) {
                    case 值1:
                        当变量 === 值1的时候, 执行的代码段
                        break;
                    case 值2:
                        当变量 === 值2的时候, 执行的代码段
                        break;
                    case 值3:
                        当变量 === 值3的时候, 执行的代码段
                        break;
                    default:
                        当上述条件均不成立的时候执行的代码段
                }

        1. break表示当前分支执行后就结束switch的运行,后续代码不再运行
        2. default可以理解为判断语句中的else
        3. case理解为if来判断这个变量是否全等于某个值 

         练习一:

    // 有一个输入框,输入数字几,就显示对应的星期几
        var num = Number(prompt('请输入数字'))
        if (!isNaN(num) && num > 0 && num <= 7) {
            switch (num) {
                case 1:
                    console.log('星期一');
                    break;
                case 2:
                    console.log('星期二');
                    break;
                case 3:
                    console.log('星期三');
                    break;
                case 4:
                    console.log('星期四');
                    break;
                case 5:
                    console.log('星期五');
                    break;
                case 6:
                    console.log('星期六');
                    break;
                case 7:
                    console.log('星期七');
                    break;
                default:
                    break;
            }
        }

        (二)、switch穿透写法

         如果case后面不写break,那当前case执行后,会继续执行后面的case中的代码

         练习二:

 // 输入数字代表月份,得出该月份天数
        var month = Number(prompt('请输入月份'))
        // 1 3 5 7 8 10 12 31天
        // 4 6 9 11 30天 2 28天/29天
        if (!isNaN(month) && month > 0 && month <= 12) {
            switch (month) {
                case 1:
                    alert('该月有31天')
                    break;
                case 3:
                    alert('该月有31天')
                    break;
                case 5:
                    alert('该月有31天')
                    break;
                case 7:
                    alert('该月有31天')
                    break;
                case 8:
                    alert('该月有31天')
                    break;
                case 10:
                    alert('该月有31天')
                    break;
                case 12:
                    alert('该月有31天')
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    alert('该月30天')
                    break;
                case 2:
                    alert('该月28/29天')
                    break;
            }
        } else {
            alert('你输入的月份不正确')
        }

三、三元计算

if双分支有一种简写方式:

条件?条件成立时运行的代码段:条件不成立时运行的代码段;

例:
a>b?console.log(a):console.log(b);

这种表达双分支的方式叫做三元运算,也叫做三元表达式。

三元运算有个特点:可以将整个表达式当做一个值,可以赋值给一个变量,也可以输出

        // 一般
        var num=20
        if (num%2===0) {
            alert('偶数')
        }else{
            alert('奇数')
        }
        // 三元计算(if的简写方式)  - 条件?当条件成立的时候执行的代码段:当条件不成立时执行的代码段
        // 可读性较差
        num%2===0?alert('偶数'):alert('奇数')
03-16 21:34