Breaking News

JavaScript - Control de bucle

JavaScript - Control de bucle


JavaScript proporciona control total para manejar loops y cambiar instrucciones. Puede haber una situaciĆ³n en la que deba salir de un bucle sin tocar fondo. TambiĆ©n puede haber una situaciĆ³n en la que desea omitir una parte de su bloque de cĆ³digo y comenzar la siguiente iteraciĆ³n del ciclo.
Para manejar todas estas situaciones, JavaScript proporciona declaraciones break continue . Estas declaraciones se usan para salir inmediatamente de cualquier bucle o para iniciar la siguiente iteraciĆ³n de cualquier bucle, respectivamente.

DeclaraciĆ³n de ruptura

Diagrama de flujo

El diagrama de flujo de una sentencia break se verĆ” de la siguiente manera:


Ejemplo

El siguiente ejemplo ilustra el uso de una instrucciĆ³n break con un ciclo while. Observe cĆ³mo el ciclo se activa temprano una vez que llega a 5 y alcanza la instrucciĆ³n document.write (..) justo debajo de la llave de cierre -
<html>
   <body>
      
      <script type="text/javascript">
         <!--
         var x = 1;
         document.write("Entering the loop<br /> ");
         
         while (x <20)
         {
            if (x == 5){
               break; // breaks out of loop completely
            }
            x = x + 1;
            document.write( x + "<br />");
         }
         
         document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

Salida


Entering the loop
2
3
4
5
Exiting the loop!
Set the variable to different value and then try...
Ya hemos visto el uso de la declaraciĆ³n break dentro de la declaraciĆ³n a switch .

La declaraciĆ³n de continuar

La instrucciĆ³n continuar le dice al intĆ©rprete que inicie inmediatamente la siguiente iteraciĆ³n del ciclo y omita el bloque de cĆ³digo restante. Cuando se encuentra una instrucciĆ³n continuar , el flujo del programa se mueve a la expresiĆ³n de comprobaciĆ³n de bucle inmediatamente y si la condiciĆ³n sigue siendo verdadera, comienza la siguiente iteraciĆ³n, de lo contrario, el control sale del bucle.

Ejemplo


Este ejemplo ilustra el uso de una instrucciĆ³n continuar con un ciclo while. Observe cĆ³mo se usa la instrucciĆ³ncontinuar para omitir la impresiĆ³n cuando el Ć­ndice contenido en la variable alcanza 5 -
<html>
   <body>
      
      <script type="text/javascript">
         <!--
            var x = 1;
            document.write("Entering the loop<br /> ");
         
            while (x <10)
            {
               x = x + 1;
               
               if (x == 5){
                  continue; // skip rest of the loop body
               }
               document.write( x + "<br />");
            }
         
            document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

Salida


Entering the loop
2
3
4
6
7
8
9
10
Exiting the loop!

Usando etiquetas para controlar el flujo

A partir de JavaScript 1.2, se puede utilizar una etiqueta con ruptura continuar para controlar el flujo con mayor precisiĆ³n. Una etiqueta es simplemente un identificador seguido de dos puntos (:) que se aplica a una instrucciĆ³n o un bloque de cĆ³digo. Veremos dos ejemplos diferentes para entender cĆ³mo usar etiquetas con break y continue.
Nota : no se permiten saltos de lĆ­nea entre la instrucciĆ³n 'continuar' 'break' y su nombre de etiqueta. AdemĆ”s, no debe haber ninguna otra instrucciĆ³n entre un nombre de etiqueta y un bucle asociado.
Pruebe los siguientes dos ejemplos para una mejor comprensiĆ³n de las etiquetas.

Ejemplo 1


El siguiente ejemplo muestra cĆ³mo implementar Label con una sentencia break.
<html>
   <body>
      
      <script type="text/javascript">
         <!--
            document.write("Entering the loop!<br /> ");
            outerloop: // This is the label name
         
            for (var i = 0; i <5; i++)
            {
               document.write("Outerloop: " + i + "<br />");
               innerloop:
               for (var j = 0; j <5; j++)
               {
                  if (j> 3 ) break ; // Quit the innermost loop
                  if (i == 2) break innerloop; // Do the same thing
                  if (i == 4) break outerloop; // Quit the outer loop
                  document.write("Innerloop: " + j + " <br />");
               }
            }
         
            document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
   </body>
</html>

Salida


Entering the loop!
Outerloop: 0
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 1
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 2
Outerloop: 3
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 4
Exiting the loop!

Ejemplo 2


<html>
   <body>
   
      <script type="text/javascript">
         <!--
         document.write("Entering the loop!<br /> ");
         outerloop: // This is the label name
         
         for (var i = 0; i <3; i++)
         {
            document.write("Outerloop: " + i + "<br />");
            for (var j = 0; j <5; j++)
            {
               if (j == 3){
                  continue outerloop;
               }
               document.write("Innerloop: " + j + "<br />");
            }
         }
         
         document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
   </body>
</html>

Salida


Entering the loop!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Exiting the loop!

No comments