continue
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 不會完全終止迴圈的執行,而是會:
- 在
while或do...while迴圈中,它會跳回到條件判斷處。 - 在
for迴圈中,它會跳到更新表示式處。 - 在
for...in、for...of或for await...of迴圈中,它會跳到下一次迭代。
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 語句的頂部繼續執行。每次遇到 continue,checkJ 都會重新迭代,直到其條件返回 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 |
瀏覽器相容性
載入中…