4.1 if语句

如果……否则……  , 让程序出现分支

1        <script type="text/javascript">
2           var a = 8;
3           if(a >= 60){
4               alert("及格了");
5           }else{
6               alert("不及格");
7           }
8        </script>

语法:

1    if(测试表达式){
2        测试表达式为真执行的语句
3    }else{
4        测试表达式为假执行的语句
5    }

if英语里面的如果的意思,else就是否则的意思。else不要拼写为eles。

 

在语法层面有两个特例:

① 可以没有else部分

1    var a = 1;
2    if(a >= 60){
3        alert("及格了");
4    }

 

② 如果要执行的语句,只有一行语句,那么就是单行if,就可以省略大括号。

1           var a = 112;
2           if(a >= 60)
3               alert("及格了");
4           else
5               alert("不及格");

 

// 最基本的if语句
        // var a = 8;
        // if(a >= 60){
        //     alert("及格了");
        // }else{
        //     alert("不及格");
        // }

        // 可以省略else部分
        // var a = 1;
        // if(a >= 60){
        //     alert("及格了");
        // }

        // 如果结构体中只有单行语句,那么可以省略大括号
        // var a = 112;
        // if(a >= 60) 
        //     alert("及格了");
        // else
        //     alert("不及格");


        // 搞清楚哪些语句在结构体中,哪些不在
        var a = 77;
        if(a > 30){
            console.log("哈哈");
            console.log("嘻嘻");
            console.log("呵呵");
        }else{
            console.log("纳尼");
            console.log("呸呸")
        }
        console.log("么么哒");        //一定执行,因为在if结构体外面。

 

注意if语句是一个结构体,注意哪些语句是在结构体中,哪些语句不是结构体:

1           var a = 355;
2           if(a > 30){
3               console.log("哈哈");
4               console.log("嘻嘻");
5               console.log("呵呵");
6           }else{
7               console.log("纳尼");
8               console.log("呸呸")
9           }
10          console.log("么么哒");  /*一定会执行,在if结构体外面*/

如果a是3,不满足条件:

小练习:用户输入一个年龄,判断用户能不能考取驾照。交规说: 大于等于18,小于等于70才能考取驾照。

 

1           //让用户输入年龄
2           var age = parseInt(prompt("请输入年龄"));
3           //判断
4           if(age >= 18 && age <= 70){
5               alert("可以考取驾照");
6           }else{
7               alert("年龄不符合要求");
8           }
9           alert("谢谢惠顾");

 

//让用户输入年龄
        var age = parseInt(prompt("请输入年龄"));
        //判断
        if(age >= 18 && age <= 70){
            alert("可以考取驾照");
        }else{
            alert("年龄不符合要求");
        }
        alert("谢谢惠顾");

 

多分支的if

if……else if …… else if…… else if…… else ……

如果……否则如果……否则如果……否则如果……否则……

跳楼现象,用户会选择一个分支执行(跳楼),选择这个分支了,就暗含了上一个分支没有满足:

1            var  score = 76;
2      
3            if(score  >= 85){
4                alert("优秀");   //不满足条件,所以不执行,走楼梯下楼
5            }else  if(score >= 70){
6                alert("良好");   //走到这个楼层的,一定暗含小于85。这一楼层满足,跳楼了
7            }else  if(score >= 60){
8                alert("及格");  //不执行
9            }else{
10               alert("不及格")  //不执行
11           }

语法:

1     if(测试表达式1){
2         测试表达式1为真的时候做的事情
3     }else if(测试表达式2){
4         测试表达式1为假,且测试表达式2为真的时候做的事情
5     }else if(测试表达式3){
6         测试表达式1为假,测试表达式2为假,且测试表达式3为真的时候做的事情
7     }
8     ……

 

// var score = 66;

        // if(score >= 85){
        //     alert("优秀");
        // }else if(score >= 70){
        //     alert("良好");
        // }else if(score >= 60){
        //     alert("及格");
        // }else{
        //     alert("不及格")
        // }

        //错误的写法!
        // var score = 100;
        // if(score >= 0){
        //     alert("不及格");
        // }else if(score >= 60){
        //     alert("及格");
        // }else if(score >= 75){
        //     alert("良好");
        // }else(score >= 85){
        //     alert("优秀");
        // }


        // var score = 100;
        // if(score <= 60){
        //     alert("不及格");
        // }else if(score <= 75){
        //     alert("及格");
        // }else if(score <= 85){
        //     alert("良好");
        // }else{
        //     alert("优秀");
        // }

        //语句且"仅"会选择一条路走。
        var a = 6;
        if(a < 8){
            a = a + 3;            //a<8条件满足,所以执行,跳楼!
        }else if(a == 9){
            a = a + 4;            //不执行
        }else if(a == 13){
            a = a + 5;            //不执行
        }else if(a == 18){
            a = a + 6;            //不执行
        }
        console.log(a);          //9

 

if语句的嵌套:

用户先输入自己的性别,比如男、女。然后输入自己的年龄。判断能否结婚。

男的22以上

女的20以上

 

if语句可以嵌套,如果里面再套一层如果:

1            //判断
2            if(sex == "男"){
3                //男
4                if(age >= 22){
5                   alert("男同志你好,可以结婚");
6                }else{
7                   alert("你还是个小正太,不能结婚!");
8                }
9            }else{
10               //女
11               if(age >= 20){
12                  alert("女同志你好,可以结婚");
13               }else{
14                  alert("你还是个小萝莉,不能结婚!");
15               }
16           }

楼层中else只能有一个。 else if可以有多个。

//用户先输入自己的性别,比如男、女。然后输入自己的年龄。判断能否结婚
        //先输入性别
        var sex = prompt("请输入性别","男");
        var age = parseInt(prompt("请输入年龄"));

        // //判断
        if(sex == "男"){
            //男
            if(age >= 22){
                alert("男同志你好,可以结婚");
            }else{
                alert("你还是个小正太,不能结婚!");
            }
        }else if(sex == "女"){
            //女
            if(age >= 20){
                alert("女同志你好,可以结婚");
            }else{
                alert("你还是个小萝莉,不能结婚!");
            }
        }else{
            alert("你输入的不是正确的性别!!");
        }

        //方法2:
        // if(sex == "男" && age >= 22){
        //     alert("男同志你好,可以结婚");
        // }else if(sex == "男" && age < 22){
        //     alert("你还是个小正太,不能结婚!");
        // }else if(sex == "女" && age >= 20){
        //     alert("女同志你好,可以结婚");
        // }else if(sex == "女" && age < 20){
        //     alert("你还是个小萝莉,不能结婚!");
        // }