continue
BaselineWidely 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.
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;
label
OptionalIdentifier 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
while
ordo...while
loop, it jumps back to the condition. - In a
for
loop, it jumps to the update expression. - In a
for...in
,for...of
, orfor await...of
loop, 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 |