Está usted en Indice > Construcción > Lenguajes > JavaScript > Lecciones y Paso a Paso > Los Bucles en JavaScript
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Los Bucles en JavaScript (2)

También podemos influir en el bucle, como en este caso:

   <html>
   <head>
   </head>
   <body>
   <script language="javascript">
   for (x = 1; x < 16; x++)
   {
           if (x % 2)
           {
                   x++;
           }
           document.write('Mi número es ' + x + '<br>');
   }
   </script>
   </body>
   </html>
  

Podemos apreciar en este ejemplo que el resultado no es el aparentemente esperado para este bucle, dado que aunque en la parte de operación incrementamos la variable sólo en 1, el resultado final es que sólo vemos números pares en la ventana. ¿Por qué? Fijémonos en el código del bucle:

  • el condicional if sólo será cierto en el caso de que el módulo de 'x' (la operación matemática de 'resto', representada por el operador '%') devuelva como resultado un valor impar.
  • si la condición de if se cumple, se ejecutará un trozo de código que incrementará el valor de 'x' en uno, influyendo de esta forma en el desarrollo del bucle.

De esta forma, en vez de mostrar los valores numéricos del 1 al 15, como sería en el caso normal, resulta que aparecen sólo valores pares. El truco en este código es sibilino pero potente: la operación 'x % 2' devolverá un 0 si 'x' es par, pero devolverá un valor distinto si es un número impar. ¿Esto que significa? Si el valor de la operación es cero, la condición es falsa (es un comportamiento muy habitual en muchos lenguajes de programación), con lo que la condición sólo será verdadera cuando 'x' sea impar. Un número impar devolverá un módulo mayor que cero al dividirlo entre 2. Al incrementar un valor impar en 1, se convierte en un valor par, que es lo que finalmente vemos en pantalla.

Parece enrevesado, pero un estudio a fondo de este código nos permite apreciar algunas de las propiedades ocultas de la programación en JavaScript. Muchas de estas propiedades y características se aprenden con la experiencia, pero en este curso veremos algunas de ellas que nos serán útiles en nuestro trabajo futuro.

Además, como derivación de que un bucle ejecuta código, esto nos lleva a que podemos anidar varios bucles uno dentro de otro, como en este caso:

   for (x = 1; x < 10; x++)
           for (y = 1; y < 10; y++)
                   document.write(x + ":" + y);
  

En este ejemplo, vemos que un bucle se ejecutará dentro del otro mostrándonos los valores de forma ordenada. No es preciso escribir llaves si el código a escribir es de una sola linea.

Para terminar este apartado, veamos rápidamente como realizar un bucle infinito con for:

   for (;;)
   {
           document.write("Esto no se acaba nunca...");
   }
  

Esto genera un pequeño problema... Si este bucle se ejecuta constantemente... ¿Qué hacemos para detenerlo o controlarlo? Usaremos dos palabras para controlar un bucle (sea cual sea), ya sea finito o infinito: break y continue.

break es la palabra reservada para cortar un bucle en un momento determinado. Es muy usada en condicionales if, ya que al darse una cierta condición, podemos controlar un bucle cortándolo cuando se dé un cierto momento concreto.

continue, sin embargo, también corta la ejecución del bucle, pero no igual que break. Mientras que break finaliza definitivamente el bucle, continue salta lo que queda de bucle y sigue la siguiente interacción sin más.

   var x = 1;
   for (;;)
   {
           x++;
           if (x > 5) break;
           document.write(x + '<br>');
   }
  


Usuarios que han visto este tema también han visto...

- Navegador dinámico javascript
- Métodos del objeto Window en Javascript
- Javascript para recomendar página
- Eventos de JavaScript
- Botones de radio en Javascript


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 22-11-2008 a las 13:56:21