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
.
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
.
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.
bloco_1:{ console.log ('1'); break bloco_2; // SyntaxError: label not found } bloco_2:{ console.log ('2'); }
Especificações
Especificação | Status | Comentário |
---|---|---|
ECMAScript 1st Edition | Standard | Definição inicial. Versão sem o uso do label. |
ECMAScript 3rd Edition | Standard | Versão com label adicionada. |
ECMAScript 5.1 (ECMA-262) The definition of 'Break statement' in that specification. |
Standard | |
ECMAScript 6 (ECMA-262) The definition of 'Break statement' in that specification. |
Release Candidate |
Compatibilidade de Browser
Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Funcionalidade | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |