1. 程式人生 > >javascript第三天學習

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("偶數");
        }