Do estudo anterior sobre loops, sabemos que, por padrão, o loop será encerrado automaticamente quando o resultado da expressão for falso, caso contrário, o loop continuará. Em alguns casos, não precisamos esperar que o loop saia automaticamente, mas podemos sair ativamente do loop. O JavaScript fornece duas instruções, break e continue, para sair do loop e sair (pular) do loop atual.
1. Instrução continue
A instrução continue é usada para pular este loop e executar o próximo loop. Ao encontrar a instrução continue, o programa testará novamente a expressão condicional. Se o resultado da expressão for verdadeiro, o próximo loop será iniciado. Se o resultado da expressão for falso, o loop será encerrado.
[Exemplo 1] Use a instrução continue para sair do loop for:
<script type="text/javascript"> for (var i = 1; i < 10; i++) { se(eu % 2 != 0) { continuar; } console.log(i); } </script>
Análise:
for (var i = 0; i < 10; i++){}
pode fazer um loop para obter todos os números entre 1 e 10.
A instrução if(i % 2 != 0)
é usada para determinar a valor de i Pode ser divisível por 2. Caso contrário, o valor em ()
é verdadeiro e continue;
é executada;
No corpo do loop, use a instrução if(i % 2 == 0)
para fazer um julgamento. Se o valor de i
puder ser dividido igualmente por 2, use " console.log(i);
" para gerar if o valor; de i
não pode ser dividido igualmente por 2, acione a instrução continue;
saia deste loop (sem saída) e execute o próximo loop.
Resultado de saída:
2. Instrução Break
A instrução break é usada para sair da estrutura de sintaxe atual. Ela pode encerrar o código do corpo do loop e sair do loop atual imediatamente e executar o código após o loop (se houver).
A diferença entre break e continue é que a instrução continue apenas encerra o loop atual, enquanto a instrução break encerra a execução de todo o loop.
Se continuarmos a usar o código do Exemplo 1 acima e substituirmos continue;
por break;
qual será o resultado?
<script type="texto/javascript"> for (var i = 1; i < 10; i++) { se(eu % 2 != 0) { quebrar; } console.log(i); } </script>
A resposta é: não produza nada . Por que isso está acontecendo? Vamos analisar:
No início do loop forx, i=1
, 1 é menor que 10? Claro, então a instrução if(i % 2 != 0)
no corpo do loop começa a ser executada,
então 1 pode dividir 2? Obviamente não pode, então se o valor em ()
for verdadeiro, a instrução " break;
" no if é executada, saltando diretamente de todo o loop, e não há chance de executar o " console.log(i);
" declaração.
3. Loops For aninhados
É importante notar que ambos break
e continue
são válidos apenas para o loop atual. Se tivermos loops aninhados, temos que ter cuidado. Vejamos o seguinte exemplo:
for (seja i = 0; i < 5; i++) { se (i% 2 == 0) continuar; for (seja j = 0; j < 5; j++) { se (j == 2) quebrar; console.log(`i = ${i}, j = ${j}`); } }
Aqui temos dois loops, cada um executado 5 vezes (0~4). Quando i é um número par, o loop externo ignora o loop atual e executa o próximo. Ou seja, somente quando i for 1 ou 3 o loop interno será executado.
O loop interno termina enquanto o valor de j for 2. Portanto, j tem apenas 0 e 1.
O resultado final é o seguinte:
4. Tags JavaScript
A partir do JavaScript 1.2, as tags podem ser usadas em conjunto com break e continuar a controlar a execução do programa com mais precisão.
Tags em JavaScript são diferentes de tags em HTML Uma tag em JavaScript é um identificador (semelhante a um nome de variável) seguido por dois pontos:. Tags JavaScript podem ser declaradas antes de qualquer instrução ou bloco de código e usadas em conjunto com break ou continuar para sair de um loop específico. Por exemplo, quando vários loops são aninhados, simplesmente usar break só pode sair do loop atual, mas. não o loop externo. Se você usar break com rótulos, poderá interromper vários níveis de loops de uma só vez.
O código de exemplo é o seguinte:
<script type="text/javascript"> document.write("Iniciar loop!<br /> "); outerloop: //Defina um rótulo para (var i = 0; i < 5; i++) { document.write("Loop externo: " + i + "<br />"); innerloop: // Defina um rótulo para (var j = 0; j < 5; j++) { if (j > 3) break; // Sair do loop interno if (i == 2) break innerloop; // Sair da mensagem interna if (i == 4) break outerloop; loop externo document.write( "Loop interno: " + j + " <br />"); } } document.write("Fim do loop!<br /> "); </script>
Nota: Não pode haver uma nova linha entre break ou continue e o rótulo. Além disso, nenhum outro código pode aparecer entre o nome do rótulo e o loop associado.
[Aprendizado recomendado: Tutorial avançado de JavaScript]
O conteúdo acima é o conteúdo detalhado do aprendizado de loop JS: instruções break e continue para sair do loop. Para obter mais informações, preste atenção a outros artigos relacionados no site PHP chinês!