Instrucción continue en JavaScript
También existe la instrucción continue,
que inicia una nueva iteración del bucle. Esta
instrucción a veces puede ser útil para
simplificar el código, aunque casi siempre la tarea
puede resolverse sin ella. Veamos un ejemplo
práctico.
Supongamos que tenemos un array con números.
Vamos a recorrerlo con un bucle y los números divisibles
por 2, los elevaremos al cuadrado y los mostraremos
en la consola, y los números divisibles por 3,
los elevaremos al cubo y los mostraremos en la consola. Aquí está la solución
de la tarea descrita:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Como puedes ver, la línea console.log(result)
se repite dos veces. Saquémosla
fuera del if, así:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // sacamos la impresión fuera de la condición
}
Sin embargo, ahora nuestro script funciona un poco
diferente: resulta que para los elementos comunes,
no procesados por nuestro if, también se
realizará la salida de la variable result
a la consola, lo cual según las condiciones de nuestra tarea no
necesitamos.
Arreglemos el problema añadiendo a nuestro if
otra condición else, que se activará
para los elementos no divisibles por 2 y
3, y llamemos allí a la instrucción continue,
que inmediatamente nos llevará
a la nueva iteración del bucle:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // pasamos a una nueva iteración del bucle
}
console.log(result); // se ejecutará si es divisible por 2 o 3
}
Escribe un bucle que muestre solo
números pares del 1 al 100,
omitiendo los impares usando continue.