第一週 - for 和 while 迴圈


Jul 23, 2021

大家好 ! 我叫Ava,剛學了3個星期的 JavaScript,這是第一次寫技術部落格,透過寫部落格把吸收的知識,能完整的輸出,避免「好像懂了,但其實不懂」的狀況,如果有任何需要改善或指導的意見,歡迎大家提出,我會虛心接受的。

今天介紹的是 JavaScript 裡的 for 迴圈和 while 迴圈 ; 當你需要電腦重複執行同樣的動作時,就可以使用 for 或 while 的語法

  • for : 知道執行次數
  • while : 不知道執行次數,ex.如果每年存 1000 元,利率 5 %,要幾年才能存到 15000 元,就可以用 while

while 迴圈

let i = 1
while (i <= 10) {
  console.log(`第 ${i} 次`)
  i++
}


let i = 1 : 在外層(全域 global)宣告變數
() : 在()裡定義條件,只要 i <= 10 ,條件為 true ,就會一直執行下去
{} : {}裡設定要重複執行的動作
i++ : 每執行一次迴圈,變數 i 就加 1

還有一個要注意的事,只要 while (),條件裡寫 true 或是寫 1 < 10,因為條件一直都是 true ,所以會變成「無窮迴圈」,電腦會無限執行下去,最後的結果可能會當機

for 迴圈

for (let i = 1; i <= 10; i++) {
  console.log(`第 ${i} 次`)
}


let i = 1 : 在內層(區域 local)宣告變數
() : 在()裡定義條件,只要 i <= 10 ,條件為 true ,就會一直執行下去
{} : {}裡設定要重複執行的動作
i++ : 每執行一次迴圈,變數 i 就加 1

要注意的是,for 迴圈裡的 i 值只存在 for{} 裡,如果 i 寫在外層,
會顯示 ReferenceError: i is not defined,表示 i 沒有被定義

break 跳脫迴圈

如果希望迴圈強制停止,可以在 while 或 for 迴圈裡加
if (i === 3) {
break
}
i === 3 : 只要 i 完全等於 3 ,迴圈就停止

while

for

#筆記






你可能感興趣的文章

Leetcode JS 2676. Throttle

Leetcode JS 2676. Throttle

2023 D4SG 成果發表會心得

2023 D4SG 成果發表會心得

GitHub 刪除密碼驗證 @ 2021.08.13

GitHub 刪除密碼驗證 @ 2021.08.13






留言討論




Eklipsorz Jul 25, 2021

還有一種有關for和while的語法-continue,是一種強制停止後續的執行動作並跳回for語法重新做比較和疊加之類的,比如說這段程式碼:

for(let i = 1; i <= 5; i++) {

  if (i === 3) {
    continue
  }
  console.log(i)
}

當 i等於3並執行continue時,就直接跳過後面的處理(console)並回上面的i++以及i <= 5的判斷,所以最後結果會是:
1
2
4
5

跟break相比的話,break是直接跳脫整個for/while所構成的迴圈,continue看似也很像跳脫迴圈,但只是跳過目前後續執行並跳回for/while語法所在。另外你可以做一個迴圈包覆另一個迴圈(如下圖),你可以在裡面的迴圈測試看看break和continue會停止哪個迴圈?是外面的?還是裡面的?

for (let i = 0; i < 5; i++) {
    for (let j = 0; j < 5; j++) {
        if (條件式) {
            break
        }
    }
}
catcolor2020 Jul 26, 2021

Eklipsorz 你好,非常謝謝你給我不同的方法嘗試,

if (i === 3) {
continue
}

是我第一次看到的語法,只跳過 i === 3 ,但會持續執行後面 4 和 5,不同於 break 強制停止

我先測試 break 會停止哪個迴圈的程式碼

for (let i = 0; i < 5; i++) {

  for (let j = 0; j < 5; j++) {
    if (j === 3) {
      break
    }
    console.log(`裡 ${j}${i}`)
  }

  console.log(i)

}

輸出結果

我先設定

if (j === 3) {
break
}

它只會影響裡面的 for 迴圈,在 j === 3 停止,而外層的 for 迴圈沒有影響

而設定改為 i === 3,程式碼如下

for (let i = 0; i < 5; i++) {

  for (let j = 0; j < 5; j++) {
    if (i === 3) {
      break
    }
    console.log(`裡 ${j}${i}`)
  }

  console.log(i)

}

輸出結果

它也一樣只會影響裡面的 for 迴圈,在 i === 3 時,不會執行

for (let j = 0; j < 5; j++) {
    console.log(`裡 ${j}${i}`)
  }

導致輸出結果,在外層的 for 迴圈,在 2 和 3 之間沒有
裡 0 外 1
裡 1 外 1
裡 2 外 1
裡 3 外 1
裡 4 外 1

但如果設置為
if (i === 3) {
continue
}

結果也是一樣

因為
if (i === 3) {
continue
}
只會影響裡面的 for 迴圈





2
2
2