循環,循環,循環。 除了與受歡迎的早餐穀物,過山車和音樂作品有關聯,它們還是編程中的關鍵概念。 編程循環都是一遍又一遍地做同一件事-在編程方面被稱為迭代。

讓我們考慮一個農民的例子,他要確保他有足夠的食物來養家糊口。 他可能使用以下循環來實現此目的:

循環通常具有以下一項或多項功能:

  • 一個用一定值初始化的計數器-這是循環的起點(上面的「開始:我沒有食物」)。
  • 一種條件,它是對/錯測試,用於確定循環是繼續運行還是停止(通常在計數器達到某個值時)。 「我是否有足夠的食物?」對此進行了說明。 以上。 假設他需要 10 份食物來養家糊口的話。
  • 一個迭代器,通常在每個連續循環上使計數器增加一小部分,直到條件不再成立為止。 上面我們沒有明確說明這一點,但是我們可以考慮一下農民每小時可以收集 2 份食物。 每小時之後,他收集的食物數量增加了 2,然後他檢查是否有足夠的食物。 如果他已達到 10 個部分(此時條件不再成立,則循環退出),他可以停止收集並回家。
  • In pseudocode , this would look something like the following:

    loop(food = 0; foodNeeded = 10) {
      if (food = foodNeeded) {
        exit loop;
        // We have enough food; let's go home
      } else {
        food += 2; // Spend an hour collecting 2 more food
        // loop will then run again
    

    因此,所需的食物數量設置為 10,而農民當前擁有的食物數量設置為 0。在循環的每次迭代中,我們檢查農民擁有的食物數量是否等於他所需的數量。 如果是這樣,我們可以退出循環。 如果不是這樣,農民將花一個小時收集兩份食物,然後循環再次運行。

    在這一點上,你可能了解了循環背後的高級概念,但你可能在想:「好,很好,但這如何幫助我編寫更好的 JavaScript 代碼?」 如前所述,循環與一次又一次地執行同一操作有關,這對於快速完成重複性任務非常有用。

    通常,代碼在每次循環的每次迭代中都會略有不同,這意味著你可以完成全部相似但略有不同的任務,一般情況,如果你要執行許多不同的計算,則需要不斷地執行不同的式子,而不能一遍又一遍重複!

    讓我們看一個示例,以完美地說明為什麼循環是如此便利。 Let's say we wanted to draw 100 random circles on a <canvas> element (press the Update button to run the example again and again to see different random sets):