continue

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

continue 語句終止當前迴圈或帶標籤迴圈的當前迭代中的語句的執行,然後繼續執行迴圈的下一次迭代。

試一試

let text = "";

for (let i = 0; i < 10; i++) {
  if (i === 3) {
    continue;
  }
  text += i;
}

console.log(text);
// Expected output: "012456789"

語法

js
continue;
continue label;
label 可選

與語句的標籤關聯的識別符號。

描述

break 語句不同,continue 不會完全終止迴圈的執行,而是會:

continue 語句可以包含一個可選的標籤,允許程式跳到帶標籤迴圈語句的下一次迭代,而不是最內層的迴圈。在這種情況下,continue 語句需要巢狀在此帶標籤的語句中。

continue 語句,無論是否帶有標籤,都不能用於指令碼、模組、函式體或 靜態初始化塊 的頂層,即使該函式或類進一步包含在一個迴圈中。

示例

將 continue 與 while 迴圈一起使用

以下示例展示了一個 while 迴圈,其中有一個 continue 語句,當 i 的值為 3 時執行。因此,n 取值為 1、3、7 和 12。

js
let i = 0;
let n = 0;

while (i < 5) {
  i++;

  if (i === 3) {
    continue;
  }

  n += i;
}

將 continue 與標籤一起使用

在下面的示例中,一個名為 checkIAndJ 的帶標籤語句包含一個名為 checkJ 的帶標籤語句。如果遇到 continue,程式會從 checkJ 語句的頂部繼續執行。每次遇到 continuecheckJ 都會重新迭代,直到其條件返回 false。當返回 false 時,checkIAndJ 語句的其餘部分將完成。

如果 continue 的標籤是 checkIAndJ,程式將從 checkIAndJ 語句的頂部繼續執行。

js
let i = 0;
let j = 8;

checkIAndJ: while (i < 4) {
  console.log(`i: ${i}`);
  i += 1;

  checkJ: while (j > 4) {
    console.log(`j: ${j}`);
    j -= 1;

    if (j % 2 === 0) continue;
    console.log(`${j} is odd.`);
  }
  console.log(`i = ${i}`);
  console.log(`j = ${j}`);
}

輸出

i: 0

// start checkJ
j: 8
7 is odd.
j: 7
j: 6
5 is odd.
j: 5
// end checkJ

i = 1
j = 4

i: 1
i = 2
j = 4

i: 2
i = 3
j = 4

i: 3
i = 4
j = 4

不符合語法的 continue 語句

continue 不能在跨函式邊界的迴圈中使用。

js
for (let i = 0; i < 10; i++) {
  (() => {
    continue; // SyntaxError: Illegal continue statement: no surrounding iteration statement
  })();
}

引用標籤時,帶標籤的語句必須包含 continue 語句。

js
label: for (let i = 0; i < 10; i++) {
  console.log(i);
}

for (let i = 0; i < 10; i++) {
  continue label; // SyntaxError: Undefined label 'label'
}

帶標籤的語句必須是迴圈。

js
label: {
  for (let i = 0; i < 10; i++) {
    continue label; // SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement
  }
}

規範

規範
ECMAScript® 2026 語言規範
# sec-continue-statement

瀏覽器相容性

另見