Bucle do while

Solo disponible en BuenasTareas
  • Páginas : 5 (1080 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de septiembre de 2010
Leer documento completo
Vista previa del texto
Bucle DO...WHILE

Es el último de los bucles que hay en Javascript. 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 4o 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ónpara 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 = dame un color
} 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 uncolor mientras que el color introducido es distinto que "rojo".

Ejemplo

Vamos a ver a continuación un ejemplo más práctico sobre cómo trabajar con un bucle WHILE. Como resulta muy dificil 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. Luegoiremos 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.

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.

Ejecuta un bloque de instrucciones dentro de un bucle condicional un numero de veces dependiente del estadode una condición..
Un conjunto de comandos situados entre DO WHILE y ENDDO se ejecuta mientras que el resultado de la expresión lógica <cond> sea verdadero (.T.). Una instrucción DO WHILE debe tener su correspondiente instrucción ENDDO.
<cond> es una expresión lógica y las instrucciones situadas entre DO WHILE y ENDDO se ejecutarán mientras que dicha condición sea verdadera (.T.).LOOP puede situarse en cualquier parte entre DO WHILE y ENDDO, devuelve el control del programa directamente a la instrucción DO WHILE, así que se vuelve a evaluar <cond>.
EXIT transfiere el control del programa desde el interior del bucle DO WHILE al primer comando a continuación de ENDDO. EXIT puede situarse en cualquier parte entre DO WHILE y ENDDO.
Ejemplo 1: Crear un programa quemuestre los números en orden ascendente, del 1 al 10 inclusive.
x=0
DO WHILE x<10
x=x+1
? x
ENDDO
Ejemplo 2: Crear un programa que muestre el cuadrado de los 100 primeros números, con pausas de 10 segundos para cada pantalla.
x=100
y=1
DO WHILE x>0
? x PICT `999','al cuadrado es',x^2 PICT `99,999'
IF x<20
y=y+1
ELSE
WAIT WIND 'Una tecla para continuar' TIME 10
CLEAR
y=1
ENDIFx=x-1
ENDDO

The Do While ... EndDo loop in FoxPro executes a section of code several times whilst an expression remains true. The loop may execute zero, once or many times. This example will keep keep adding to a total until that total reaches 100;
lnLimit = 100
lnTotal = 0
Do While lnTotal < lnLimit
   *-- Keep adding until we hit the limit
   lnTotal = lnTotal +...
tracking img