100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
JavaScript

break and continue in JavaScript

Learn how to alter loop execution with break and continue, and how labeled statements let you control outer loops from inside nested loops.

Control FlowBeginner8 min readJul 8, 2026
Analogies

1. Introduction

break and continue are control-flow keywords that let you alter the normal, top-to-bottom execution of a loop from the inside. break immediately terminates the nearest enclosing loop (or switch statement), jumping to the code right after it. continue skips the rest of the current iteration's body and jumps straight to the next iteration's condition check (or update step, in a for loop).

🏏

Cricket analogy: A rain-stoppage declared mid-innings ends the match entirely on the spot, like break, while a single wide ball just gets redone without ending the over, moving straight to the next legal delivery, like continue.

Both are especially useful for early exits: stopping a search as soon as a match is found (break), or skipping items that don't meet some criteria without wrapping the rest of the loop body in an extra if block (continue).

🏏

Cricket analogy: A scout stops scanning the entire domestic circuit the moment they spot a genuine fast-bowling prospect, like break, while skipping over players who don't meet the pace threshold saves them from separately filtering the list, like continue.

2. Syntax

javascript
for (let i = 0; i < items.length; i++) {
  if (someCondition) {
    break; // exits the loop entirely
  }
  if (anotherCondition) {
    continue; // skips to the next iteration
  }
  // normal processing
}

// Labeled break/continue for nested loops
outer: for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 3; j++) {
    if (j === 1) continue outer; // skips to next i, not just next j
    if (i === 2) break outer;    // exits BOTH loops
  }
}

3. Explanation

By default, break and continue only affect the innermost loop that directly contains them. This becomes a problem with nested loops: a plain break inside an inner loop only exits that inner loop, and the outer loop keeps running its remaining iterations as normal — it does not stop the outer loop.

🏏

Cricket analogy: A fielder breaking off a chase to stop one ball rolling to the boundary doesn't stop the entire innings from continuing; the match, the outer loop, carries on with the next delivery regardless.

To control an outer loop from within a nested inner loop, JavaScript supports labeled statements. A label is an identifier followed by a colon placed immediately before a loop (e.g., outer: for (...) { ... }). Using break outer; or continue outer; from inside a nested loop then targets that specific labeled loop instead of the innermost one.

🏏

Cricket analogy: A team captain calling a specific fielding change by name, third man come in, targets exactly that position rather than the whole field, just as a labeled break outer targets a specifically named outer loop instead of the nearest one.

Labeled break/continue are the standard way to escape or skip iterations of an outer loop from deep inside nested loops without resorting to extra boolean flag variables or throwing exceptions. They work with for, while, and do-while loops, and labeled break can also be used to exit any labeled block statement, not just loops.

4. Example

javascript
// continue: skip even numbers
for (let i = 1; i <= 5; i++) {
  if (i % 2 === 0) continue;
  console.log('odd:', i);
}

// break: stop as soon as target is found
const nums = [3, 7, 11, 15, 20];
for (let i = 0; i < nums.length; i++) {
  if (nums[i] === 11) {
    console.log('found at index', i);
    break;
  }
}

// labeled break in nested loops
outer: for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 3; j++) {
    if (i === 1 && j === 1) {
      console.log('breaking outer at', i, j);
      break outer;
    }
    console.log('checking', i, j);
  }
}

5. Output

text
odd: 1
odd: 3
odd: 5
found at index 2
checking 0 0
checking 0 1
checking 0 2
checking 1 0
breaking outer at 1 1

6. Key Takeaways

  • break exits the nearest enclosing loop (or switch) immediately, skipping any remaining iterations.
  • continue skips only the rest of the current iteration and proceeds to the next one.
  • By default, break and continue affect only the innermost loop they are directly inside.
  • A label (name: before a loop) combined with break label; or continue label; lets you target an outer loop from a nested inner loop.
  • Labeled break can also exit a plain labeled block statement, not just loops.
  • Overusing break/continue can hurt readability; prefer them for clear early-exit or skip logic rather than complex control flow.

Practice what you learned

Was this page helpful?

Topics covered

#JavaScript#JavaScriptProgrammingStudyNotes#Programming#BreakAndContinueInJavaScript#Break#Continue#Syntax#Explanation#StudyNotes#SkillVeris