break

Questa traduzione è incompleta. Aiutaci a tradurre questo articolo dall’inglese

Lo statement break interrompe il loop corrente, termina uno statement switch, o trasferisce l'esecuzione verso un label .

Sinstassi

break [label];
label Optional
Identificatore che può essere anche associato ad una label. Se lo statement non è un loop o uno switch, il label è necessario.

Descrizione

Lo statement break può contenere un parametro opzionale (label) che impone al programma di interrompere l'esecuzione e saltare ad un determinato punto nel programma, indicato dalla label stessa. La label può anche essere uno degli statement jsxref("Statements/block", "block")}}; e non dovrà essere preceduto da uno statement loop.
Uno statement break, con o senza label opzionale, non può essere usato nel corpo di una funzione innestata in un loop o uno switch, poichè quando verrà eseguito break il programma verrà terminato insieme al loop o allo switch.

Esempi

break in un while loop

La seguente funzione contiene uno statement  break che interromperà il while loop quando la variabile i avrà valore 3, quindi restituirà il valore di 3 * x.

function testBreak(x) {
  var i = 0;

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

  return i * x;
}

break in labeled blocks

Il seguente codice usa lo statement break con un blocco definito da una label. Lo stetement break deve essere innestato all'interno di qualsiasi label a cui fa riferimento. Nota che inner_block è innestato dentro outer_block.

outer_block: {
  inner_block: {
    console.log('1');
    break outer_block; // esce sia da inner_block che da outer_block
    console.log(':-('); // non viene eseguito
  }
  console.log('2'); // non viene eseguito
}

break in labeled blocks che genera un errore

Il codice seguente usa lo statement break nei labeled block, ma genera un SyntaxError poichè il break è all'interno del block_1 ma fa riferimento a block_2. Uno statement break deve sempre essere innestato all'interno dei blocchi a cui si riferiscono i label.

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

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

break all'interno di funzioni

Verranno generati SyntaxError anche nei seguenti esempi di codice dove viene usato lo stetement break all'interno di funzioni che sono innestate nei cicli loop, oppure all'interno di funzioni innestate in labeled block, per cui lo stetemen break si intende come stop all'esecuzione e uscita.

function testBreak(x) {
  var 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'
  })();
}

Specifiche

Specifiche
ECMAScript (ECMA-262)
The definition of 'Break statement' in that specification.

Compatibilità dei Browser

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
breakChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Vedi anche