Bucles de JavaScript: explicación de la declaración de etiqueta, declaración de continuación y declaración de interrupción

Declaración de etiqueta

La Declaración de la etiqueta se utiliza con los breaky continuelas declaraciones y sirve para identificar la declaración a la que los breaky continuese aplican las declaraciones.

Hablaremos más sobre las declaraciones breaky a continuecontinuación.

Sintaxis

labelname: statements

Uso

Sin el uso de una labeleddeclaración, la breakdeclaración solo puede salir de un bucle o una switchdeclaración. El uso de una labeleddeclaración permite breaksaltar de cualquier bloque de código.

Ejemplo

foo: { console.log("This prints:"); break foo; console.log("This will never print."); } console.log("Because execution jumps to here!") /* output This prints: Because execution jumps to here! */

Cuando se usa con una continuedeclaración, la labeleddeclaración le permite omitir una iteración de bucle, la ventaja proviene de poder saltar de un bucle interno a uno externo cuando tiene declaraciones de bucle anidadas. Sin el uso de una labeleddeclaración, solo podría saltar de la iteración del bucle existente alnext iteration of the same loop.

Ejemplo

// without labeled statement, when j==i inner loop jumps to next iteration function test() { for (var i = 0; i < 3; i++) { console.log("i=" + i); for (var j = 0; j < 3; j++) { if (j === i) { continue; } console.log("j=" + j); } } } /* output i=0 (note j=0 is missing) j=1 j=2 i=1 j=0 (note j=1 is missing) j=2 i=2 j=0 j=1 (note j=2 is missing) */ // using a labeled statement we can jump to the outer (i) loop instead function test() { outer: for (var i = 0; i < 3; i++) { console.log("i=" + i); for (var j = 0; j < 3; j++) { if (j === i) { continue outer; } console.log("j=" + j); } } } /* i=0 (j only logged when less than i) i=1 j=0 i=2 j=0 j=1 */

Declaración de ruptura

La instrucción break termina el ciclo actual switcho labelinstrucción y transfiere el control del programa a la instrucción que sigue a la instrucción terminada.

break;

Si la instrucción break se usa en una instrucción etiquetada, la sintaxis es la siguiente:

break labelName;

Ejemplos

La siguiente función tiene un descanso declaración de que termina el whilebucle cuando i es 3 y, a continuación, devuelve el valor 3 * x .

function testBreak(x) { var i = 0; while (i < 6) { if (i == 3) { break; } i += 1; } return i * x; }
:cohete:

Ejecutar código

En el siguiente ejemplo, el contador está configurado para contar de 1 a 99; sin embargo, la instrucción break termina el ciclo después de 14 conteos.

for (var i = 1; i < 100; i++) { if (i == 15) { break; } }
:cohete:

Ejecutar código

Continuar declaración

La instrucción continue termina la ejecución de las instrucciones en la iteración actual del ciclo actual o etiquetado, y continúa la ejecución del ciclo con la siguiente iteración.

continue;

Si la instrucción continue se usa en una instrucción etiquetada, la sintaxis es la siguiente:

continue labelName;

A diferencia de la instrucción break , continue no termina la ejecución del bucle por completo; en lugar:

  • En un whilebucle, vuelve a la condición.
  • En un forbucle, salta a la expresión de actualización.

Ejemplos

El siguiente ejemplo muestra un whileciclo que tiene una instrucción continue que se ejecuta cuando el valor de i es 3. Por lo tanto, n toma los valores 1, 3, 7 y 12.

var i = 0; var n = 0; while (i < 5) { i++; if (i === 3) { continue; } n += i; console.log (n); }
:cohete:

Ejecutar código

En el siguiente ejemplo, un ciclo itera del 1 al 9. Las declaraciones entre continue y el final del forcuerpo se omiten debido al uso de la instrucción continue junto con la expresión (i < 5).

for (var i = 1; i < 10; i++) { if (i < 5) { continue; } console.log (i); }
:cohete:

Ejecutar código