continue
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thecontinue statement terminates execution of the statements in the current iteration of the current or labeled loop, and continues execution of the loop with the next iteration.
In this article
Try it
let text = "";for (let i = 0; i < 10; i++) { if (i === 3) { continue; } text += i;}console.log(text);// Expected output: "012456789"Syntax
continue;continue label;labelOptionalIdentifier associated with the label of the statement.
Description
In contrast to thebreak statement,continue does not terminate the execution of the loop entirely, but instead:
- In a
whileordo...whileloop, it jumps back to the condition. - In a
forloop, it jumps to the update expression. - In a
for...in,for...of, orfor await...ofloop, it jumps to the next iteration.
Thecontinue statement can include an optional label that allows the program to jump to the next iteration of a labeled loop statement instead of the innermost loop. In this case, thecontinue statement needs to be nested within this labeled statement.
Acontinue statement, with or without a following label, cannot be used at the top level of a script, module, function's body, orstatic initialization block, even when the function or class is further contained within a loop.
Examples
>Using continue with while
The following example shows awhile loop that has acontinue statement that executes when the value ofi is 3. Thus,n takes on the values 1, 3, 7, and 12.
let i = 0;let n = 0;while (i < 5) { i++; if (i === 3) { continue; } n += i;}Using continue with a label
In the following example, a statement labeledcheckIAndJ contains a statement labeledcheckJ. Ifcontinue is encountered, the program continues at the top of thecheckJ statement. Each timecontinue is encountered,checkJ reiterates until its condition returns false. When false is returned, the remainder of thecheckIAndJ statement is completed.
Ifcontinue had a label ofcheckIAndJ, the program would continue at the top of thecheckIAndJ statement.
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}`);}Output:
i: 0// start checkJj: 87 is odd.j: 7j: 65 is odd.j: 5// end checkJi = 1j = 4i: 1i = 2j = 4i: 2i = 3j = 4i: 3i = 4j = 4
Unsyntactic continue statements
continue cannot be used within loops across function boundaries.
for (let i = 0; i < 10; i++) { (() => { continue; // SyntaxError: Illegal continue statement: no surrounding iteration statement })();}When referencing a label, the labeled statement must contain thecontinue statement.
label: for (let i = 0; i < 10; i++) { console.log(i);}for (let i = 0; i < 10; i++) { continue label; // SyntaxError: Undefined label 'label'}The labeled statement must be a loop.
label: { for (let i = 0; i < 10; i++) { continue label; // SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement }}Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-continue-statement> |