Instrução continue em JavaScript
Existe também a instrução continue,
que inicia uma nova iteração do loop. Esta
instrução às vezes pode ser útil para
simplificar o código, embora quase sempre a tarefa
possa ser resolvida sem ela. Vamos ver
um exemplo prático.
Suponha que temos um array com números. Vamos
iterar sobre ele com um loop e elevar ao quadrado os números
que são divisíveis por 2, e exibi-los
no console, e os números que são divisíveis por 3,
vamos elevar ao cubo e exibir no console. Aqui está a solução
da tarefa 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 você pode ver, a linha console.log(result)
se repete duas vezes. Vamos colocá-la
fora do if, assim:
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); // colocamos a saída fora da condição
}
No entanto, agora nosso script funciona um pouco
diferente: acontece que para elementos comuns,
não processados pelo nosso if, será
executada a saída da variável result
no console, o que, pelas condições da nossa tarefa,
não é necessário.
Vamos corrigir o problema, adicionando ao nosso if
mais uma condição else, que será acionada
para elementos não divisíveis por 2 e
3, e chamaremos a instrução continue nela,
que irá imediatamente nos levar
para uma nova iteração do loop:
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; // vamos para uma nova iteração do loop
}
console.log(result); // será executado se for divisível por 2 ou 3
}
Escreva um loop que exiba apenas
números pares de 1 a 100,
pulando os números ímpares usando continue.