1. 程式人生 > 實用技巧 >JavaScript高階(05_流程控制與迴圈)

JavaScript高階(05_流程控制與迴圈)

流程控制

  • js中的程式是從上到下一行行執行的

  • 通過流程控制語句可以控制程式執行的流程

  • 使程式可以根據一定的條件來選擇語句執行

  • 語句的分類

    • 迴圈語句

      • while迴圈

        • 通過迴圈語句可以反覆的執行一段程式碼塊多次

        • 語法:

        • while(條件表示式){
            語句。。。
          }
        • while語句在執行時,先對條件表示式進行求值判斷

        • 如果值為true,則執行迴圈體語句,然後依次反覆判斷和執行

        • 如果值為false,則不執行迴圈體語句,並直接跳出該迴圈

        • 先判斷後執行

      • do...while迴圈

        • 語法:

        • do{
            語句...
          }while(條件表示式)
        • 先執行迴圈體中的語句,再對while的條件表示式判斷

        • 如果結果為true,則繼續執行迴圈體,執行完畢繼續判斷以此類推

        • 如果結果為false,則終止迴圈

        • 先執行後判斷

      • for迴圈

        • 初始化表示式

        • 條件表示式

        • 更新表示式

        • 語法:

        • for(初始化表示式;條件表示式;更新表示式){
            迴圈體語句...
          }
        • 執行流程:

          1. 執行初始化表示式,初始化變數(初始化表示式只執行一次)

          2. 執行條件表示式,來判斷是否執行迴圈

            • 如果為true,則執行迴圈體 [迴圈體執行完成後跳至步驟3]

            • 如果為false,則終止迴圈

          3. 執行更新表示式

            • 更新表示式執行完畢後 [執行步驟跳至步驟2]

      • break關鍵字只能用來退出switch或for迴圈語句

        • 不能在if語句中使用break和continue

        • break關鍵字,會立即終止離他最近的那個迴圈語句

        • 可以為迴圈語句建立一個標籤,來表示當前迴圈

        • label:迴圈語句

        • outer:
          for(i=0; i<5; i++){
            console.log("@外層迴圈"+i);
            inner:
            for(j=0; j<5; j++){
              break inner;
              console.log("內層迴圈"+j);
            }
          }
        • 使用break關鍵字時,可以在break後面+label標籤,來指定結束的迴圈

        • 此時結束的不是最近的迴圈了

        • continue 關鍵字可以用來跳過當次迴圈,使得迴圈直接進行下一次迴圈

          • continue也是預設對離他最近的迴圈起作用

    • 條件分支語句
    • 條件判斷語句

      • 使用條件 判斷語句可以在執行某個語句之前進行判斷

      • 如果條件成立才會執行語句,否則不執行

      • if語句

        • if語法一:

        • if(條件表示式){語句}

        • if語句在執行時,會先對條件表示式進行求值判斷 ,如果條件表示式為true,則執行if後的語句,否則不會執行

        • if語句只能控制緊隨其後的語句

        • 如果希望if語句可以控制多個語句,可以將這些需要控制的語句丟到程式碼塊{}中

        • if語句後面的程式碼塊不是必須的,但是在開發中儘量用{}來寫程式碼塊

      • switch語句

        • switch 和 if 基本可以互相轉換使用

        • switch(score){
          case 1:
            語句1
          case 2:
            語句2
          ...
          default:
            語句default
          }