Del estudio anterior de bucles, sabemos que, de forma predeterminada, el bucle saldrá automáticamente cuando el resultado de la expresión sea falso; de lo contrario, el bucle continuará. En algunos casos, no necesitamos esperar a que el bucle salga automáticamente, pero podemos salir activamente del bucle. JavaScript proporciona dos declaraciones, romper y continuar, para salir del bucle y salir (omitir) el bucle actual.
1. declaración de continuación
La declaración de continuación se utiliza para omitir este ciclo y ejecutar el siguiente ciclo. Al encontrar la declaración de continuación, el programa volverá a probar inmediatamente la expresión condicional. Si el resultado de la expresión es verdadero, comenzará el siguiente ciclo. Si el resultado de la expresión es falso, el ciclo saldrá.
[Ejemplo 1] Utilice la instrucción continue para salir del bucle for:
<script type="text/javascript"> para (var i = 1; i < 10; i++) { si(yo % 2 != 0) { continuar; } consola.log(i); } </script>
Análisis:
for (var i = 0; i < 10; i++){}
puede repetirse para obtener todos los números entre 1 y 10.
La instrucción if(i % 2 != 0)
se utiliza para determinar el valor de i ¿Puede ser divisible por 2? Si no, entonces el valor en ()
es verdadero y se ejecuta continue;
En el cuerpo del bucle, use la declaración if(i % 2 == 0)
para juzgar si el valor de i
se puede dividir uniformemente entre 2, use " console.log(i);
" para generar el valor; de i
no se puede dividir en partes iguales entre 2, active la instrucción continue;
, salga de este bucle (sin salida) y ejecute el siguiente bucle.
Resultado de salida:
2. Declaración de interrupción
La declaración de interrupción se utiliza para saltar de la estructura de sintaxis actual. Puede terminar el código del cuerpo del bucle y saltar del bucle actual inmediatamente y ejecutar el código después del bucle (si lo hay).
La diferencia entre break y continue es que la declaración de continuación solo finaliza el ciclo actual, mientras que la declaración de interrupción finaliza la ejecución de todo el ciclo.
Si continuamos usando el código del Ejemplo 1 anterior y reemplazamos continue;
con break;
¿qué resultado obtendremos?
<tipo de script="texto/javascript"> para (var i = 1; i < 10; i++) { si(yo % 2 != 0) { romper; } consola.log(i); } </script>
La respuesta es: no generar nada . ¿Por qué sucede esto? Analicémoslo:
al comienzo del ciclo forx, i=1
, ¿es 1 menor que 10? Por supuesto, entonces la instrucción if(i % 2 != 0)
en el cuerpo del bucle comienza a ejecutarse,
¿puede 1 dividir 2? Obviamente no puede, por lo que si el valor en ()
es verdadero, se ejecuta la instrucción " break;
" en if, saltando directamente de todo el bucle y no hay posibilidad de ejecutar " console.log(i);
" declaración.
3. Bucles For anidados
Vale la pena señalar que tanto break
como continue
solo son válidos para el bucle actual. Si tenemos bucles anidados, debemos tener cuidado. Echemos un vistazo al siguiente ejemplo:
for (let i = 0; i < 5; i++) { si (i % 2 == 0) continuar; para (sea j = 0; j < 5; j++) { si (j == 2) romper; console.log(`i = ${i}, j = ${j}`); } }
Aquí tenemos dos bucles, cada uno ejecutado 5 veces (0~4). Cuando i es un número par, el bucle externo omite el bucle actual y ejecuta el siguiente. Es decir, solo cuando i sea 1 o 3, se ejecutará el bucle interno.
El bucle interno termina siempre que el valor de j sea 2. Por lo tanto, j sólo tiene 0 y 1.
El resultado final es el siguiente:
4. Etiquetas de JavaScript
A partir de JavaScript 1.2, las etiquetas se pueden usar junto con break y continuar controlando la ejecución del programa con mayor precisión.
Las etiquetas en JavaScript son diferentes de las etiquetas en HTML. Una etiqueta en JavaScript es un identificador (similar a un nombre de variable) seguido de dos puntos:. Las etiquetas JavaScript pueden declararse antes de cualquier declaración o bloque de código y usarse junto con break o continuar saltando de un bucle específico. Por ejemplo, cuando se anidan varios bucles, simplemente usar break solo puede saltar del bucle actual, pero. no el bucle externo. Si usa romper con etiquetas, puede romper varios niveles de bucles a la vez.
El código de muestra es el siguiente:
<script type="text/javascript"> document.write("¡Iniciar bucle!<br /> "); outsideloop: //Definir una etiqueta para (var i = 0; i < 5; i++) { document.write("Bucle externo: " + i + "<br />"); Innerloop: // Definir una etiqueta para (var j = 0; j < 5; j++) { if (j > 3) break; // Salir del bucle interno if (i == 2) romper el bucle interno // Salir del mensaje interno if (i == 4) romper el bucle externo; bucle externo document.write( "Bucle interno: " + j + " <br />"); } } document.write("¡Fin del ciclo!<br /> "); </script>
Nota: No puede haber una nueva línea entre la interrupción o la continuación y la etiqueta. Además, no puede aparecer ningún otro código entre el nombre de la etiqueta y el bucle asociado.
[Aprendizaje recomendado: Tutorial avanzado de JavaScript]
Lo anterior es el contenido detallado del aprendizaje del bucle JS: declaraciones de interrupción y continuación para salir del bucle. Para obtener más información, preste atención a otros artículos relacionados en el sitio web chino de PHP.