javascript第三天学习

三、条件分支语句

1、三元运算符

他是唯一一个需要三个元素参与的运算。

也叫作三元表达式。

符号:? :

语法:boolean_expression ? true_value : false_value;

表示:前面的布尔表达式的值只有truefalse两种,如果为true,运算结果就是冒号前面的true_value,如果是false,运算结果就是冒号后面的false_value

表达式:在js里面如果出现表达式,在参与代码运行时,会先计算出结果。

        var a = 23;
        console.log(true ? 1 : 0);
        console.log(false ? 1 : 0);
        console.log(7 > 8  ? 1 : 0);
        console.log(a > 0  ? 1 : 0);
        console.log("nihao" ? 1 : 0);
        console.log("" > 0  ? 1 : 0);

三元运算符的结果都可以用if语句模仿。

        //用if语句模拟三元运算符
        var a = 23;
        if(a > 0) {
            console.log(1);
        }else {
            console.log(0);
        }

简单的二选一得到值的程序里,三元运算符比if语句要更加简单。而且,三元运算符会直接计算出一个值,可以赋值给变量。

        var a = 7 > 8 ? 1 : 0;
        console.log(a);    

遇到给变量通过条件二选一赋值的时候,三元表达式更加好用。

        //输入工作年限、工资、输出年终奖
        var year = parseInt(prompt("请输入你的工作年限,不满一年输入0"));
        var salary = parseInt(prompt("请输入你的月工资"));
        //工作满0年     发月薪的1倍月薪年终奖,如果月薪大于8000,那么就是发1.2倍
        //工作满1年     发月薪的1.5倍月薪年终奖,如果月薪大于10000,那么就是发1.7倍
        //工作满2年,甚至更多 发月薪的3倍月薪年终奖,如果月薪大于12000,那么就是发3.2倍
        var bonus = 0; //里面要放数字类型
        var beishu;
        if(year == 0) {
            //发月薪的1倍月薪年终奖,如果月薪大于8000,那么就是发1.2倍
            beishu = salary > 8000 ?1.2 : 1;
        }else if(year == 1) {
            beishu =salary > 10000 ? 1.7 : 1.5;
        }else {
            beishu = salary > 12000 ? 3.2 : 3;
        }
            bonus = salary * beishu;
        alert("您的年终奖是"+bonus+"元");

拓展:逻辑运算符也有选择的功能。

var year = parseInt(prompt("请输入你的工作年限,不满一年输入0")) || 0;

2、switch语句

开关语句允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个case标签。如果匹配成功,这个程序执行相关的语句。

比较if语句和switch语句:

if语句:

        //请用户输入一个星座,输出对应的星座运势
        var xingzuo = prompt("请输入一个星座","白羊座");
        //通过匹配对应的星座输出星座运势
        if(xingzuo == "白羊座") {
            alert("需要出外办事的次数多,与人交流顺畅融洽,这也是你拓展人脉的机会。但是天气炎热要注意防暑。");
        }else if(xingzuo == "金牛座") {
            alert("实力被压制总不能得到施展,让你大受打击,自信心下滑。若是今天要签约、谈判,务必要仔细看清楚条款" +
                    ",以免被陷害了。");
        }else if(xingzuo == "双子座") {
            alert("虽然今天很忙,花费了很多精力时间在工作上,可最终很有可能白忙一场。要是感觉承受不住了,就休" +
                    "息一下先放下手上的事情,");
        }else {
            alert("不好意思,查不到了");
        }

switch语句:

      switch(xingzuo) {
            case "白羊座" :
                alert("需要出外办事的次数多,与人交流顺畅融洽,这也是你拓展人脉的机会。但是天气炎热要注意防暑。");
                break;
            case "金牛座" :
                alert("实力被压制总不能得到施展,让你大受打击,自信心下滑。若是今天要签约、谈判,务必要仔细看" +
                        "清楚条款,以免被陷害了。");
                break;
            case "双子座" :
                alert("虽然今天很忙,花费了很多精力时间在工作上,可最终很有可能白忙一场。要是感觉承受不住了,就" +
                        "休息一下先放下手上的事情,");
            default :
                alert("不好意思,查不到了");
                break;
        }

语法:

  switch(expression){
    case label1:         //如果表达式的值等于label1,执行下面的statement1.
        statement1;
        break;           //遇到break,直接跳出switch语句。
    case label2:         //如果表达式的值等于label2,执行下面的statement2.
        statement2;
        break;           //遇到break,直接跳出switch语句。
    case label3:         //如果表达式的值等于label3,执行下面的statement3.
        statement3;
        break;           //遇到break,直接跳出switch语句。
    ……
    default:            //前面的情况都不匹配,执行default后面的结构体
        statement_n;
        break;
}

default:相当于if语句里面的else。可以省略。如果写了,前面不符合就走default,如果不写,前面情况都不符合,直接跳出switch。后面的break可以不写。

break:打断程序,强制跳出当前的switch语句。如果不写break,程序会继续往下进行,直到碰到一个break或者程序执行完,才能跳出。

        var a = parseInt(prompt("请输入一个个位数,会输出它的英文"));
        switch (a) {
            case 3 :
                alert("three");
            case 4 :
                alert("four");
            case 5 :
                alert("five");
            case 6 :
                alert("six");
            case 7 :
                alert("seven");
            case 8 :
                alert("eight");
            case 9 :
                alert("nine");
            default :
                alert("sorry,I don't know");
        }

虽然不写不能跳出程序,我们可以利用这个特点做一些特殊的小程序。

        var a = parseInt(prompt("请输入一个个位数,会输出它是奇数还是偶数"));
        switch (a) {
            case 1 :
            case 3 :
            case 5 :
            case 7 :
            case 9 :
                alert("奇数");
                break;
            default :
                alert("偶数");
        }

猜你喜欢

转载自www.cnblogs.com/scum/p/10176775.html