break

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.

Sumário

O comando break encerra o loop atual, switch, ou o loop que foi informado no label e transfere o controle da execução do programa para o comando seguinte.

Síntaxe

break [label];
label

Opcional. Identificador associado ao label de um comando. Se a estrutura não for um loop ou switch, ele será um pré-requisito.

Descrição

O comando break inclui um label opcional que permite ao programa encerrar a execução da estrutura que possui o nome informado na label. O comando break deve estar dentro dessa estrutura informada no label. A estrutura que possui o nome informada na label pode ser qualquer comando block; não é necessário que seja precedida por um loop.

Exemplos

A função a seguir possui um comando break que encerra o loop while quando a variável i vale 3, e então retorna o valor 3 * x.

js
function testaBreak(x) {
  var i = 0;

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

O código a seguir possui o comando break dentro de uma estrutura nomeada. O comando break deverá estar dentro da estrutura na qual o label se refere. Veja que inner_block está dentro de outer_block.

js
bloco_externo: {
  bloco_interno: {
    console.log("1");
    break bloco_externo; // encerra bloco_interno e bloco_externok
    console.log(":-("); // não é executado
  }

  console.log("2"); // não é executado
}

O código a seguir também utiliza o comando break com blocos nomeados mas gera um erro de sintaxe pois o comando break está dentro do bloco_1 mas faz uma referência ao bloco_2. Um comando break sempre deverá estar dentro da estrutura nomeada na qual fizer referência.

js
bloco_1:{
  console.log ('1');
  break bloco_2;            // SyntaxError: label not found
}

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

Especificações

Specification
ECMAScript Language Specification
# sec-break-statement

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também