Break y continue

  • Por
Dos instrucciones que aumentan el control sobre los bucles en Javascript. Sirven para parar y continuar con la siguiente iteración del bucle respectivamente.

Javascript tiene diferentes estructuras de control para implementar bucles, como FOR, WHILE y DO...WHILE, que ya hemos podido explicar en capítulos anteriores del Manual de Javascript. Como hemos podido comprobar, con estos bucles podemos abarcar gran cantidad de necesidades, pero quizás con el tiempo encuentres que te faltan algunas posibilidades de control de las repeticiones de los bucles.

Imagina por ejemplo que estas haciendo un bucle muy largo para encontrar algo en cientos o miles de sitios. Pero ponte en el caso que durante las primeras iteraciones encuentres ese valor que buscabas. Entonces no tendría sentido continuar con el resto del bucle para buscar ese elemento, pues ya lo habías encontrado. En estas situaciones nos conviene saber para el bucle cancelar el resto de iteraciones. Obviamente, ésto es solo un ejemplo de cómo podríamos vernos en la necesidad de controlar un poco más el bucle. En la vida real como programador encontrarás muchas otras ocasiones en las que te interesará hacer esto u otras cosas con ellos.

Así pues, existen dos instrucciones que se pueden usar en de las distintas estructuras de control y principalmente en los bucles, que te servirán para controlar dos tipos de situaciones. Son las instrucciones break y continue.:

  • break: Significa detener la ejecución de un bucle y salirse de él.
  • continue: Sirve para detener la iteración actual y volver al principio del bucle para realizar otra iteración, si corresponde.

Break

Se detiene un bucle utilizando la palabra break. Detener un bucle significa salirse de él y dejarlo todo como está para continuar con el flujo del programa inmediatamente después del bucle.

for (i=0;i<10;i++){ 
   	document.write (i) 
   	escribe = prompt("dime si continuo preguntando...", "si") 
   	if (escribe == "no") 
      	break 
}

Este ejemplo escribe los números del 0 al 9 y en cada iteración del bucle pregunta al usuario si desea continuar. Si el usuario dice cualquier cosa continua, excepto cuando dice "no", situación en la cual se sale del bucle y deja la cuenta por donde se había quedado.

Continue

Sirve para volver al principio del bucle en cualquier momento, sin ejecutar las líneas que haya por debajo de la palabra continue.

var i=0 
while (i<7){ 
   	incrementar = prompt("La cuenta está en " + i + ", dime si incremento", "si") 
   	if (incrementar == "no") 
      	continue 
   	i++ 
}

Este ejemplo, en condiciones normales contaría hasta desde i=0 hasta i=7, pero cada vez que se ejecuta el bucle pregunta al usuario si desea incrementar la variable o no. Si introduce "no" se ejecuta la sentencia continue, con lo que se vuelve al principio del bucle sin llegar a incrementar en 1 la variable i, ya que se ignorarían las sentencia que hayan por debajo del continue.

Ejemplo adicional de la sentencia break

Un ejemplo más práctico sobre estas instrucciones se puede ver a continuación. Se trata de un bucle FOR planeado para llegar hasta 1.000 pero que lo vamos a parar con break cuando lleguemos a 333.

for (i=0;i<=1000;i++){ 
   	document.write(i + "<br>") 
   	if (i==333) 
      	break; 
}

Podemos ver una página con el ejemplo en funcionamiento.

Con la descripción de las sentencias break y continue hemos podido abarcar todo lo que se debe saber sobre la creación de bucles en Javascript. Ahora bien, en el siguiente artículo todavía vamos a seguir en el tema de las estructuras de control, porque queremos ofrecer un ejemplo un poco más avanzado donde aprenderemos a anidar bucles.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

samael

16/3/2006
pro lo menos en algunos ejemplo de do while de verian poner, en forma estructuarda, para saber como se elaboran en la estructuración.

derkeNuke

01/8/2007
Además de lo que se menciona, la sentencia simple de la instrucción break y continue, también existen esas sentencias seguidas de un "parámetro".

Por ejemplo:
break minibucles;
continue minibucles;

Siento minibucles una marca de posición, con la misma sintaxis que un case dentro de un switch:
---------
var c = 0;
for (var i = 0; i < 8; i++) {
comparisonLoop:
for (var k = 0; k < 8; k++) {
for (var m = 0; m < 8; m++) {
if( k%2==0 && m%2==0 && i%2==0 ) c++;
e( i+", "+k+", "+m+" --> "+c);
if(c%7==0) continue comparisonLoop;
else if(c%8==0) break comparisonLoop;
}
}
}
----------

De esta manera podemos abarcar dos bucles for, sin tener que hacer peripecias para conseguirlo. De otra manera habría que trabajar con demasiadas variables inútiles.





Un saludo.

sammen

27/6/2014
nice1
Well it was nice try in improving the codes and thus the standards. Thanks a lot for the post hope you would keep increasing it gradually. Would be looking forward to the latest updates too. This was good and I am impressed. http://windows8helptech.com/ !!