Bucles WHILE y DO WHILE

  • Por
  • 18 de octubre de 2001
  • Valoración:
  • 13 Comentarios
  • Manuales de Javascript
Descripción y diferentes usos de los dos tipos de bucles WHILE que se encuentran disponibles en Javascript, con algunos ejemplos prácticos.
Estamos tratando acerca de las distintas estructuras de control que existen en el lenguaje Javascript y en concreto viendo los distintos tipos de bucles que podemos implementar en este lenguaje de programación. En artículos anteriores del Manual de Javascript vimos ya el primero de los bucles que debemos conocer, el bucle for y ahora vamos a tratar sobre los otros dos tipos de estructuras de control para hacer repeticiones. Así pues, veamos ahora los dos tipos de bucles WHILE que podemos utilizar en Javascript y los usos de cada uno.

Bucle WHILE

Estos bucles se utilizan cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces, siempre que se cumpla una condición. Se más sencillo de comprender que el bucle FOR, pues no incorpora en la misma línea la inicialización de las variables su condición para seguir ejecutándose y su actualización. Sólo se indica, como veremos a continuación, la condición que se tiene que cumplir para que se realice una iteración.

while (condición){
    //sentencias a ejecutar
}


Un ejemplo de código donde se utiliza este bucle se puede ver a continuación.

var color = ""
while (color != "rojo"){
    color = prompt("dame un color (escribe rojo para salir)","")
}


Este es un ejemplo de lo más sencillo que se puede hacer con un bucle while. Lo que hace es pedir que el usuario introduzca un color y lo hace repetidas veces, mientras que el color introducido no sea rojo. Para ejecutar un bucle como este primero tenemos que inicializar la variable que vamos utilizar en la condición de iteración del bucle. Con la variable inicializada podemos escribir el bucle, que comprobará para ejecutarse que la variable color sea distinto de "rojo". En cada iteración del bucle se pide un nuevo color al usuario para actualizar la variable color y se termina la iteración, con lo que retornamos al principio del bucle, donde tenemos que volver a evaluar si lo que hay en la variable color es "rojo" y así sucesivamente mientras que no se haya introducido como color el texto "rojo".

Nota: Hemos utilizado en este ejemplo la función prompt de Javascript, que no hemos visto todavía en este manual. Esta función sirve para que mostrar una caja de diálogo donde el usuario debe escribir un texto. Esta función pertenece al objeto window de Javascript y la comentamos en el artículo Métodos de window en Javascript.

Bucle DO...WHILE

El bucle do...while es la última de las estructuras para implementar repeticiones de las que dispone en Javascript y es una variación del bucle while visto anteriormente. Se utiliza generalmente cuando no sabemos cuantas veces se habrá de ejecutar el bucle, igual que el bucle WHILE, con la diferencia de que sabemos seguro que el bucle por lo menos se ejecutará una vez.

Este tipo de bucle se introdujo en Javascript 1.2, por lo que no todos los navegadores los soportan, sólo los de versión 4 o superior. En cualquiuer caso, cualquier código que quieras escribir con DO...WHILE se puede escribir también utilizando un bucle WHILE, con lo que en navegadores antiguos deberás traducir tu bucle DO...WHILE por un bucle WHILE.

La sintaxis es la siguiente.

do {
    //sentencias del bucle
} while (condición)


El bucle se ejecuta siempre una vez y al final se evalúa la condición para decir si se ejecuta otra vez el bucle o se termina su ejecución.

Veamos el ejemplo que escribimos para un bucle WHILE en este otro tipo de bucle.

var color
do {
    color = prompt("dame un color (escribe rojo para salir)","")
} while (color != "rojo")


Este ejemplo funciona exactamente igual que el anterior, excepto que no tuvimos que inicializar la variable color antes de introducirnos en el bucle. Pide un color mientras que el color introducido es distinto que "rojo".

Ejemplo de uso de los bucles while

Vamos a ver a continuación un ejemplo más práctico sobre cómo trabajar con un bucle WHILE. Como resulta muy difícil hacer ejemplos prácticos con lo poco que sabemos sobre Javascript, vamos a adelantar una instrucción que aun no conocemos.

En este ejemplo vamos a declarar una variable e inicializarla a 0. Luego iremos sumando a esa variable un número aleatorio del 1 al 100 hasta que sumemos 1.000 o más, imprimiendo el valor de la variable suma después de cada operación. Será necesario utilizar el bucle WHILE porque no sabemos exactamente el número de iteraciones que tendremos que realizar (dependerá de los valores aleatorios que se vayan obteniendo).

var suma = 0
while (suma < 1000){
    suma += parseInt(Math.random() * 100)
    document.write (suma + "<br>")
}


Suponemos que por lo que respecta al bucle WHILE no habrá problemas, pero donde si que puede haberlos es en la sentencia utilizada para tomar un número aleatorio. Sin embargo, no es necesario explicar aquí la sentencia porque lo tenemos planeado hacer más adelante. De todos modos, si lo deseas, puedes ver este artículo que habla sobre números aleatorios en Javascript.

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

Con esto ya hemos conocido todos los tipos de bucles que existen en Javascript, no obstante aun vamos a dedicar un artículo para explicar las sentencias break y continue que nos sirven para alterar el funcionamiento normal de los bucles en dos sentidos.

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.

Comentarios

cristian

16/3/2005
el manual es de primera categoria, despues de buscar , nagegar por mas de 3 horas , leer los primeros capitulos de mas de 5 manuales de otras web , éste es superior a todos, explica todos los detalles de cero y con una narracion estupenda. estoy profundamente agradecido por todo el esfuerzo y dedicacion de han puesto los autores en esta web. y mas que nada por dar sus conocimientos de una manera que todos los lectores podamos entender. Cristian

Carlos Leopoldo

24/1/2007
si lo que dijo Cristian, en verdad!
A si y si me pudiaran avisas cada vez que haya nuevas cosas que ver en esta pagina se los agradeceria. Y espero que un futuro gracias a usteddes puede ayudarlos a mejorar, es decir que si me dan trabajo.

max

28/11/2008
para que sirve y como se utilza do while en la clase main de un algoritmo, lo mismo que el chart at.

David

04/8/2009
Importante
Los ejemplos estan super quisiera me ayudaran con un ejemplo mas claro para poder ejercitarlo y analizarlo. Gracias!

Gustavo

05/8/2009
necestio mucha ayuda
Necesito que me den muy buenos consejos para trabajar con los bucles ya que cuando voy a trabajar con ellos me tranco y no salgo de hay. He intentado comprenderlo usando c, c++, y ahora con php pero sigo en la misma. Ojala puedan ayudarme esperare una respuestas gracias.

veronica

20/4/2010
de visual basic 6.0
Si me podria ayudar con un ejercicio de la sentencia do while por favor si no es mucha molestia

jorge

29/4/2010
do while
estructuras de control

Brenda

20/5/2010
wow muy bueno
este articulo esta super bueno despues de varias horas buscando no encontraba nada coherente pero este si que es demasiado bueno. Explica detalladamente todo y cada uno de los bucles de verdad este articulo quien lo haya subido lo felicito y le doy 1000 gracias por que de verdad me sirvio mucho. Gracias y felicidades!!!!!!!!!!! <br>.<u><b>Gracias</b></u>

kris

11/12/2010
tareas
ayudenme con este problema no se como hacerlo:
1. En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la sig. forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja mas de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra.

erik18

23/6/2011
exelente pagina
gracias por caompartir todo lo que saben a aquellos que apenas estmos aprendiendo sinceramente aprendo mas con ustedes que en la escuela

gracias x ser nuestros tutores

Edwin Carmona

19/4/2012
Gratificaciones!!!
Muchas gracias por tu aporte!!! Me dejo bien claro, porque yo solo utilizaba While en la prepa, y hay ejercisios que nos dejan de tarea en la que nos piden usar Do While y la verdad no entendia nada, pero ahora estoy mas claro... Gracias!!!

kelly y brenda

25/4/2012
mmmmm estamos muy malll y en pleno examn es el kolmo =(
kerido gustavo nosotras estamos peor k tu y no estamos de chillonas mmm bueno la verdad esk si, en est0s momentos estamos en evaluación y no sabemos nada nada nada mmm de echo ni se kien soy??? kom me llamo??? kien es ese señor?? haaaa es el profe mm no puede ser kiero ami mama¡¡¡¡¡¡ mmm estoy seguro k vamos a reprovar enceriooo ..... =( peor kom te decia gustavin no estes de chillon

Ariel

10/6/2013
Muchisimas gracias
DIOOOSSS X FIN!! alguien que se sabe explicar y tiene paciencia MUCHISIMAS GRACIAS estoy haciendo un master en desarrollo web on - line y con los apuntes no me entero de nada . Llevaba 2 semanas atascado y ha sido leer esto y ver los videos y ¡me he enterado de todo!!!!
Muchas gracias por subirlos , "linkeare" tu página desde todos los sitios que pueda , y me hartaré de recomendarla!!!!

Compartir