Lo statement break interrompe il loop corrente, termina uno statement switch
, o trasferisce l'esecuzione verso un label
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Sinstassi
break [label];
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
CompatibilitĂ dei Browser
BCD tables only load in the browser