break Keyword

Examples

break in while loop

The following function has a break statement that terminates the while loop when i is 3, and then returns the value 3 * x.

function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      break;
    }
    i += 1;
  }

  return i * x;
}

break in switch statements

The following code has a break statement that terminates the switch statement when a case is matched and the corresponding code has run.

const food = "sushi";

switch (food) {
  case "sushi":
    console.log("Sushi is originally from Japan.");
    break;
  case "pizza":
    console.log("Pizza is originally from Italy.");
    break;
  default:
    console.log("I have never heard of that dish.");
    break;
}

break in labeled blocks

The following code uses break statements with labeled blocks. A break statement must be nested within any label it references. Notice that innerBlock is nested within outerBlock.

outerBlock: {
  innerBlock: {
    console.log('1');
    break outerBlock; // breaks out of both inner_block and outer_block
    console.log(':-('); // skipped
  }
  console.log('2'); // skipped
}

break in labeled blocks that throw

The following code also uses break statements with labeled blocks, but generates a SyntaxError because its break statement is within block1 but references block2. A break statement must always be nested within any label it references.


block1: {
  console.log('1');
  break block2; // SyntaxError: label not found
}

block2: {
  console.log('2');
}

break within functions

SyntaxErrors are also generated in the following code examples which use break statements within functions that are nested within a loop, or labeled block that the break statements are intended to break out of.

function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      (function () {
        break;
      })();
    }
    i += 1;
  }

  return i * x;
}

testBreak(1); // SyntaxError: Illegal break statement

block_1: {
  console.log('1');
  (function () {
    break block_1; // SyntaxError: Undefined label 'block_1'
  })();
}