1. 程式人生 > 程式設計 >詳解Javascript基礎之迴圈

詳解Javascript基礎之迴圈

目錄
  • 迴圈
    • for
    • for-in
    • for-of
    • while
    • do-while
      • 跳出迴圈
  • 總結

    迴圈

    for

    迴圈是任何一門語言都會有個命令,用於反覆執行某段程式碼。

    例如,迴圈程式碼塊5次:

    for (let i = 0; i < 5dFSMmEwg; i++) {
      let text = `當前數字為${i}`
      console.log(text)
    }
    
    

    // 輸出結果:
    當前數字為0
    當前數字為1
    當前數字為2
    當前數字為3
    當前數字為4

    此例中,let i = 0是宣告迴圈的計次變數,i < 5是迴圈終止條件,i++是計次變數更新步長,{}內的所有程式碼為迴圈體內程式碼塊。

    具體流程是:計次變數進行終止條件判斷運算,如果結果為true,則迴圈體執行,結束後進行步長更新運算,從而得到新的結果再次參與判斷;如果結果為false,則立刻終止迴圈;

    所以想要控制迴圈次數,可以通常改變判斷條件實現,如果迴圈條件永遠為true,則就是一個死迴圈。

    for-in

    for-in迴圈是一種特殊迴圈,可用於迴圈物件或陣列(通常迴圈陣列,使用for-of)

    let o = {
      name: 'dapiaoliang',age: 18,sex: 'woman'
    }
    
    // 將物件內的所有鍵值對迴圈輸出,此時可以使用for-in
    for (let key in o) {
      let text = `當前屬性名:${key},值:${o[key]}`
    }
    
    

    // 結果(這種迴圈輸出順序可能會不一樣,但數量不變)
    當前屬性名:name,值:dapiaoliahttp://www.cppcns.com

    ng
    當前屬性名:age,值:18
    當前屬性名:sex,值:woman

    由此可見,for-in 用於迴圈物件內所有的鍵值對,具體輸出順序可能會發生變化,但是每個鍵值對都會被迴圈一次。

    for-of

    for-of時一種專門用於迴圈陣列或類似陣列結構(Iterator介面)的迴圈命令

    let arr = ["dapiaoliang",18,'woman']
    
    for (let value of arr) {
      let text = `當前值是:${value}`
      console.log(text)
    }
    
    

    // 結果
    當前值是:dapiaoliang
    當前值是:18
    當前值是:woman

    類似for-in,可直接迴圈陣列的每一項資料

    while

    while是for的一個變種。(不常用)

    while (條件) {
    	迴圈體
    }
    

    當條件為true,迴圈體就會執行,這種迴圈沒有計次變數,不需要更新步長。所以條件通常需要是一個可變引數,如果不是可變引數,就需要在迴圈體內,有明確的終止條件

    do-while

    do-while是一種特殊的while迴圈(不常用)

    do {
      迴圈體
    }while(條件)
    

    當前數字為0
    當前數字為1
    當前數字為2
    當前數字為4

    看起來是將while的條件和迴圈體交換了位置,所以這種迴圈體,在第一次時,是不需要進行判斷條件就會執行,執http://www.cppcns.com行結束後,再進行判斷,判斷結果決定下一次是否會迴圈

    所以,do-while的條件是決定下一次是否迴圈,而第一次永遠都會執行,所以可以理解為至少執行一次的while迴圈

    跳出迴圈

    如果在迴圈體內由於某些原因,需要在程式碼塊內跳出迴圈,可以使用對應的關鍵字。

    break用於永久終止此迴圈,continue用於終止當前這次迴圈(立刻進入下一次)

    例如,跳過i = 3時情況

    for (let i = 0; i < 5; i++) {
      if (i === 3) {
        continue
      }
      let text = `當前數字為${i}`
      console.log(text)
    }
    

    上述例子,在i=3時,迴圈體內判斷為真,執行continue,那麼此次後續兩行程式碼不會執行,會立刻進入下一次迴圈。

    for (let i = 0; i < 5; i++) {
      if (i === 3) {dFSMmEwg
        break
      }
      let text = `當前數字為${i}`
      console.log(text)
    }
    
    

    當前數字為0
    當前數字為1
    當前數字為2

    此時判斷內是break,那麼當i=3時,執行了break,那麼後續所有次數的迴圈都不會執行。break會把整個迴圈全部關閉。

    總結

    本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注我們的更多內容!