JavaScript 06 - 流程控制 - 分支


12 - if分支語句

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>12-if分支語句</title>
    <!-- 
        1. 流程控制
        ===========

        在一個程序執行的過程中,各條代碼的執行順序對程序的結果是有直接影響的。
        很多時候我們要通過控制代碼的執行順序來實現我們要完成的功能。
        簡單理解: 流程控制就是來控制我們的代碼按照什麼結構順序來執行
        流程控制主要有三種結構,分別是順序結構、分支結構和循環結構,這三種結構代表三種代碼執行的順序。

        2. 順序流程控制
        ==============

        順序結構是程序中最簡單、最基本的流程控制,它沒有特定的語法結構,程序會按照代碼的先後順序,依次執行,
        程序中大多數的代碼都是這樣執行的。

        3. 分支流程控制if語句
        ====================

        3.1 分支結構
        ------------

        由上到下執行代碼的過程中,根據不同的條件,執行不同的路徑代碼(執行代碼多選一的過程),從而得到不同的結果

        JS語言提供了兩種分支結構語句
        if 語句
        switch 語句

        3.2 if語句
        ----------

        1. 語法結構
        ***********
        // 條件成立執行代碼,否則什麼也不做
        if (條件表達式) {
         // 條件成立執行的代碼語句
        }
        語句可以理解爲一個行爲,循環語句和分支語句就是典型的語句。一個程序由很多個語句組成,一般情況下,會分
        割成一個一個的語句。
     -->
    <script>
        // 1. if 的語法結構   如果if
        // if (條件表達式) {
        //     // 執行語句
        // }

        // 2. 執行思路  如果 if 裏面的條件表達式結果爲真 true 則執行大括號裏面的 執行語句 
        // 如果if 條件表達式結果爲假 則不執行大括號裏面的語句 則執行if 語句後面的代碼
        // 3. 代碼體驗
        if (3 < 5) {
            alert('沙漠駱駝');
        }
    </script>
</head>
<body>

</body>
</html>

13 - 進入網吧案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>13-進入網吧案例</title>
    <!-- 
        案例: 進入網吧
        --------------
        彈出一個輸入框,要求用戶輸入年齡,如果年齡大於等於 18 歲,允許進網吧。
        
        案例分析
        --------
        彈出 prompt 輸入框,用戶輸入年齡, 程序把這個值取過來保存到變量中
        使用 if 語句來判斷年齡,如果年齡大於18 就執行 if 大括號裏面的輸出語句
     -->
    <script>
        var age = prompt('請輸入您的年齡:');
        if (age >= 18) {
            alert('您的年齡合法,歡迎來天際網吧享受學習的樂趣!');
        }
    </script>
</head>
<body>

</body>
</html>

14 - if else雙分支語句

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>14-if else雙分支語句</title>
    <!-- 
        3.3 if else語句(雙分支語句)
        ---------------------------

        1. 語法結構
        ***********
        // 條件成立 執行 if 裏面代碼,否則執行else 裏面的代碼
        if (條件表達式) {
         // [如果] 條件成立執行的代碼
        } else {
         // [否則] 執行的代碼
        }
     -->
    <script>
        // 1. 語法結構  if 如果  else 否則
        // if (條件表達式) {
        //     // 執行語句1
        // } else {
        //     // 執行語句2 
        // }
        // 2. 執行思路 如果表達式結果爲真 那麼執行語句1  否則  執行語句2
        // 3. 代碼驗證
        var age = prompt('請輸入您的年齡:');
        if (age >= 18) {
            alert('我想帶你去網吧偷耳機');
        } else {
            alert('滾, 回家做作業去');
        }
        // 5. if裏面的語句1 和 else 裏面的語句2 最終只能有一個語句執行  2選1
        // 6. else 後面直接跟大括號
    </script>
</head>
<body>

</body>
</html>

15 - 判斷閏年案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>15-判斷閏年案例</title>
    <!-- 
        案例 2:判斷閏年
        ---------------
        接收用戶輸入的年份,如果是閏年就彈出閏年,否則彈出是平年

        案例分析
        -------
        算法:能被4整除且不能整除100的爲閏年(如2004年就是閏年,1901年不是閏年)或者能夠被 400 整除的就是閏年
        彈出prompt 輸入框,讓用戶輸入年份,把這個值取過來保存到變量中
        使用 if 語句來判斷是否是閏年,如果是閏年,就執行 if 大括號裏面的輸出語句,否則就執行 else裏面的輸出語句
        一定要注意裏面的且 &&  還有或者 || 的寫法,同時注意判斷整除的方法是取餘爲 0
     -->
    <script>
        var year = prompt('請您輸入年份:');
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            alert('您輸入的年份是閏年');
        } else { // 剩下的是平年
            alert('您輸入的年份是平年');
        }
    </script>
</head>
<body>

</body>
</html>

16 - if else if多分支語句

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>16-if else if多分支語句</title>
    <!-- 
        3.4 if else if語句(多分支語句)
        ------------------------------

        1. 語法結構
        ***********
        // 適合於檢查多重條件。
        if (條件表達式1) {
         語句1;
        } else if (條件表達式2) {
         語句2;
        } else if (條件表達式3) {
         語句3;
        ....
        } else {
         // 上述條件都不成立執行此處代碼
        }
     -->
    <script>
        // 1. 多分支語句   就是利用多個條件來選擇不同的語句執行 得到不同的結果  多選1 的過程
        // 2. if else if語句是多分支語句
        // 3. 語法規範
        if (條件表達式1) {
            // 語句1;
        } else if (條件表達式2) {
            // 語句2;
        } else if (條件表達式3) {
            // 語句3;
        } else {
            // 最後的語句;
        }
        // 4. 執行思路
        // 如果條件表達式1 滿足就執行 語句1 執行完畢後,退出整個if 分支語句  
        // 如果條件表達式1 不滿足,則判斷條件表達式2  滿足的話,執行語句2 以此類推
        // 如果上面的所有條件表達式都不成立,則執行else 裏面的語句
        // 5. 注意點
        // (1) 多分支語句還是多選1 最後只能有一個語句執行
        // (2) else if 裏面的條件理論上是可以任意多個的
        // (3) else if 中間有個空格了
    </script>
</head>
<body>

</body>
</html>

17 - 判斷成績案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>17-判斷成績案例</title>
    <!-- 
        案例: 判斷成績級別
        -----------------
        要求:接收用戶輸入的分數,根據分數輸出對應的等級字母 ABCDE。
        其中:
        1. 90()以上 ,輸出:A
        2. 80()~ 90 (不含),輸出:B
        3. 70()~ 80 (不含),輸出:C
        4. 60()~ 70 (不含),輸出:D
        5. 60(不含) 以下,輸出: E

        案例分析
        -------
        1. 按照從大到小判斷的思路
        2. 彈出prompt輸入框,讓用戶輸入分數,把這個值取過來保存到變量中
        3. 使用多分支 if else if 語句來分別判斷輸出不同的值
     -->
    <script>
        // 僞代碼 按照從大到小判斷的思路
        // 彈出prompt輸入框,讓用戶輸入分數(score),把這個值取過來保存到變量中
        // 使用多分支 if else if 語句來分別判斷輸出不同的值
        var score = prompt('請您輸入分數:');
        if (score >= 90) {
            alert('寶貝,你是我的驕傲');
        } else if (score >= 80) {
            alert('寶貝,你已經很出色了');
        } else if (score >= 70) {
            alert('你要繼續加油嘍');
        } else if (score >= 60) {
            alert('孩子,你很危險');
        } else {
            alert('熊孩子,我不想和你說話,我只想用鞭子和你說話');
        }
    </script>
</head>
<body>

</body>
</html>

18 - 三元表達式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>18-三元表達式</title>
    <!-- 
        三元表達式也能做一些簡單的條件選擇。 有三元運算符組成的式子稱爲三元表達式
        1. 語法結構
        表達式1 ? 表達式2 : 表達式3;
        2. 執行思路
        如果表達式1true ,則返回表達式2的值,如果表達式1false,則返回表達式3的值
        簡單理解: 就類似於 if else (雙分支) 的簡寫
     -->
    <script>
        // 1. 有三元運算符組成的式子我們稱爲三元表達式
        // 2. ++num     3 + 5     ? :
        // 3. 語法結構 
        // 條件表達式 ? 表達式1 : 表達式2
        // 4. 執行思路
        // 如果條件表達式結果爲真 則 返回 表達式1 的值 如果條件表達式結果爲假 則返回 表達式2 的值
        // 5. 代碼體驗
        var num = 10;
        var result = num > 5 ? '是的' : '不是的'; // 我們知道表達式是有返回值的
        console.log(result);
        // if (num > 5) {
        //     result = '是的';
        // } else {
        //     result = '不是的';
        // }
    </script>
</head>
<body>

</body>
</html>

19 - 數字補0案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>19-數字補0案例</title>
    <!-- 
        案例: 數字補0
        -------------
        用戶輸入數字,如果數字小於10,則在前面補 0 ,比如0109 ,如果數字大於10,則不需要補,比如 20。

        案例分析
        -------
        1. 用戶輸入0~59之間的一個數字
        2. 如果數字小於10,則在這個數字前面補0,(加0 拼接) 否則  不做操作
        3. 用一個變量接受這個返回值,輸出
     -->
    <script>
        var time = prompt('請您輸入一個 0 ~ 59 之間的一個數字');
        // 三元表達式   表達式 ? 表達式1 :表達式2 
        var result = time < 10 ? '0' + time : time; //   把返回值賦值給一個變量
        alert(result);
    </script>
</head>
<body>

</body>
</html>

20 - switch分支語句

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>20-switch分支語句</title>
    <!-- 
        5. 分支流程控制 switch 語句
        ==========================

        5.1 語法結構
        ------------
        switch 語句也是多分支語句,它用於基於不同的條件來執行不同的代碼。
        當要針對變量設置一系列的特定值的選項時,就可以使用 switchswitch( 表達式 ){ 
         case value1:
         // 表達式 等於 value1 時要執行的代碼
         break;
         case value2:
         // 表達式 等於 value2 時要執行的代碼
         break;
         default:
         // 表達式 不等於任何一個 value 時要執行的代碼
        }

        switch :開關 轉換 , case :小例子 選項
        關鍵字 switch 後面括號內可以是表達式或值, 通常是一個變量
        關鍵字 case , 後跟一個選項的表達式或值,後面跟一個冒號
        switch 表達式的值會與結構中的 case 的值做比較
        如果存在匹配全等(===) ,則與該 case 關聯的代碼塊會被執行,並在遇到 break 時停止,整個 switch 語句代碼執行結束
        如果所有的 case 的值都和表達式的值不匹配,則執行 default 裏的代碼
        注意: 執行case 裏面的語句時,如果沒有break,則繼續執行下一個case裏面的語句。
     -->
    <script>
        // 1. switch 語句也是多分支語句 也可以實現多選1
        // 2. 語法結構 switch 轉換、開關  case 小例子或者選項的意思
        // switch (表達式) {
        //     case value1:
        //         執行語句1;
        //         break;
        //     case value2:
        //         執行語句2;
        //         break;
        //         ...
        //         default:
        //             執行最後的語句;
        // }
        // 3. 執行思路  利用我們的表達式的值 和 case 後面的選項值相匹配 如果匹配上,就執行該case 裏面的語句  如果都沒有匹配上,那麼執行 default裏面的語句
        // 4. 代碼驗證
        switch (8) {
            case 1:
                console.log('這是1');
                break;
            case 2:
                console.log('這是2');
                break;
            case 3:
                console.log('這是3');
                break;
            default:
                console.log('沒有匹配結果');

        }
    </script>
</head>
<body>

</body>
</html>

21 - switch注意事項

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>21-switch注意事項</title>
    <script>
        // switch注意事項
        var num = 1;
        switch (num) {
            case 1:
                console.log(1);

            case 2:
                console.log(2);

            case 3:
                console.log(3);
                break;


        }
        // 1. 我們開發裏面 表達式我們經常寫成變量
        // 2. 我們num 的值 和 case 裏面的值相匹配的時候是 全等   必須是值和數據類型一致纔可以 num === 1
        // 3. break 如果當前的case裏面沒有break 則不會退出switch 是繼續執行下一個case
    </script>
</head>
<body>

</body>
</html>

22 - 查詢水果案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>22-查詢水果案例</title>
    <!-- 
        案例: 查詢水果
        -------------
        用戶在彈出框裏面輸入一個水果,如果有就彈出該水果的價格, 如果沒有該水果就彈出“沒有此水果”

        案例分析
        -------
        1. 彈出 prompt 輸入框,讓用戶輸入水果名稱,把這個值取過來保存到變量中。
        2. 將這個變量作爲 switch 括號裏面的表達式。
        3. case 後面的值寫幾個不同的水果名稱,注意一定要加引號 ,因爲必須是全等匹配。
        4. 彈出不同價格即可。同樣注意每個 case 之後加上 break ,以便退出 switch 語句。
        5.default 設置爲沒有此水果。   
     -->
    <script>
        var fruit = prompt('請您輸入查詢的水果:');
        switch (fruit) {
            case '蘋果':
                alert('蘋果的價格是 3.5/斤');
                break;
            case '榴蓮':
                alert('榴蓮的價格是 35/斤');
                break;
            default:
                alert('沒有此水果');
        }
    </script>
</head>
<body>

</body>
</html>

23 - switch和if else if區別

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>23-switchif else if區別</title>
    <!-- 
		5.2 分支流程控制switch語句的區別
        ------------------------------

        1. 一般情況下,它們兩個語句可以相互替換
        2. switch...case 語句通常處理 case爲比較確定值的情況,而 ifelse…語句更加靈活,常用於範圍判斷(大於、
        等於某個範圍) 
        3. switch 語句進行條件判斷後直接執行到程序的條件語句,效率更高。而ifelse 語句有幾種條件,就得判斷多少次。
        4. 當分支比較少時,ifelse語句的執行效率比 switch語句高。 
        5. 當分支比較多時,switch語句的執行效率比較高,而且結構更清晰。
     -->
</head>
<body>

</body>
</html>

作業

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>作業</title>
	<!-- 
		 5.3 作業
        ---------

        1. 判斷時間階段。 比如 用戶輸入12點 彈出 中午好 用戶輸入 18點 彈出傍晚好 用戶輸入 23點 彈出深夜好 
        2. 比較兩個數的最大值 (用戶依次輸入2個值,最後彈出最大的那個值) 
        3. 用戶輸入一個數,來判斷是奇數還是偶數
        4. 根據用戶輸入的數值(數字1 到 數字 7),返回星期幾 
        5. 接收班長口袋裏的錢數?若大於等於2000,請大家喫西餐。若小於2000,大於等於1500,請大家喫快餐。
        若小於1500,大於等於1000,請大家喝飲料。若小於1000,大於等於500,請大家喫棒棒糖。否則提醒班長下次把錢帶夠 
        6. 分數轉換,給一個分數,判定等級。大於等於90 A,大於等於80小於90 B,大於等於70小於80 C ,大於
        等於60小於70 D,小於60 E 
        7. 預習下 循環控制 for 循環
	-->
	<script>
		// 1. 判斷時間階段。 比如 用戶輸入12點 彈出 中午好 用戶輸入 18點 彈出傍晚好 用戶輸入 23點 彈出深夜好 
        var time = prompt('請問現在幾點了?');
        if(time >= 3 && 6 >= time){
            alert('凌晨好');
        }else if(8 >=  time){
            alert('早晨好');
        }else if(11 >=  time){
            alert('上午好');
        }else if(13 >=  time){
            alert('中午好');
        }else if(17 >=  time){
            alert('下午好');  
        }else if(19 >=  time){
            alert('傍晚好');
        }else if(23 >=  time){
            alert('晚上好');
        }else {
            alert('深夜好');
        }

        // 2. 比較兩個數的最大值 (用戶依次輸入2個值,最後彈出最大的那個值) 
        var num1 = prompt('請輸入一個數');
        var num2 = prompt('請輸入一個數');
        alert((num1 > num2) ? num1 : num2);

        // 3. 用戶輸入一個數,來判斷是奇數還是偶數
        var user = prompt('請輸入一個數');
        alert((user % 2 == 0) ? '偶數' : '奇數');

        // 4. 根據用戶輸入的數值(數字1 到 數字 7),返回星期幾 
        var week = prompt('請輸入日期數:');
        switch(parseInt(week)){
            case 1:
                alert('今天星期一');
                break;
            case 2:
                alert('今天星期二');
                break;
            case 3:
                alert('今天星期三');
                break;
            case 4:
                alert('今天星期四');
                break;
            case 5:
                alert('今天星期五');
                break;
            case 6:
                alert('今天星期六');
                break;
            case 7:
                alert('今天星期日');
                break;
            default:
                alert('輸入的日期不在數字1到數字7範圍內');
        }

        // 5. 接收班長口袋裏的錢數?若大於等於2000,請大家喫西餐。若小於2000,大於等於1500,請大家喫快餐。
        // 若小於1500,大於等於1000,請大家喝飲料。若小於1000,大於等於500,請大家喫棒棒糖。否則提醒班長下次把錢帶夠
        var money = prompt('班長口袋裏的錢數是多少?');
        if(money >= 2000){
            alert('請大家喫西餐');
        }else if(money >= 1500){
            alert('請大家喫快餐');
        }else if(money >= 1000){
            alert('請大家喝飲料');
        }else if(money >= 500){
            alert('請大家喫棒棒糖');
        }else {
            alert('班長下次把錢帶夠');
        }

        // 6. 分數轉換,給一個分數,判定等級。大於等於90 A,大於等於80小於90 B,大於等於70小於80 C ,大於
        // 等於60小於70 D,小於60 E 
        var fraction = prompt('請輸入分數');
        if (fraction >= 90) {
            alert('A')
        } else if (fraction >= 80) {
            alert('B')
        } else if (fraction >= 70) {
            alert('C')
        } else if (fraction >= 60) {
            alert('D')
        } else {
            alert('E')
        }
	</script>
</head>
<body>

</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章