¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
Alguien que sepa explicar bien, ya que he buscado varias informaciones de diferentes web y realmente no lo entiendo, si alguien me lo puede explicar de manera que entienda un tonto ( :roto2:), ya que realmente no me entra. :uhh:
¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Este es el bucle más potente que se puede encontrar en VBS, contamos la sintaxis y ofrecemos algunos ejemplos de bucles un poco más complejos.
Por Miguel Angel Alvarez
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
El bucle DO...LOOP es muy versatil. Con el se pueden crear gran variedad de bucles distintos, bucles que comprueben una condición antes de ejecutar el bucle una vez, después de la primera ejecución y con conbinaciones con mientras (WHILE) que se cumple una condición o hasta (UNTIL) que esa condicion se cumpla. la sintaxis de esta estructura es la siguiente:
DO [WHILE | UNTIL (condicion)]
Sentencias
.....
LOOP [WHILE | UNTIL (condicion)]
Vamos a tratar de explicar esta sentencia de manera pausada para que sea más fácil de entender. Lo que siempre tendremos en estos bucles es el DO y el LOOP, entre estos dos colocaremos las sentencias que queremos ejecutar en cada iteración del bucle. Los bucles tienen que evaluar entre cada iteración si se siguen ejecutando o no, para ello evaluan una condición. Lo versatil de este bucle es que la condición se puede expresar de muchas maneras distintas.
Condición expresada al lado del DO: en este caso la condición se evalua antes de empezar a ejecutarse el bucle.
Condición expresada al lado del LOOP: en este caso la condición se evalua después de ejecutarse el bucle. Tiene como diferencia principal frenta al otro método que en este caso el bucle se ejecutará por lo menos una vez.
Además de poder expresar la condición en estos dos sitios también se puede construir la condición con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semanticas de estas dos posibilidades se trasladan también a su manera de funcionar.
Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide cunstantemente el nombre del autor de la página y no para hasta que el nombre sea "migue". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles.
Dim entrada
entrada = ""
DO WHILE (entrada <> "migue")
entrada = inputbox ("Dime el nombre del autor","seguridad","migue",2,3)
if (entrada = "out") then
msgbox "salgo por la puerta de atras"
exit do
end if
LOOP
Podemos ver este ejemplo en funcionamiento.
El siguente ejemplo realiza una cuenta y entre cuenta y cuenta se muestra el valor de la cuenta actual en una ventanita donde sale un botón de Reintentar y otro de Cancelar. Si se pulsa reintentar se sigue ejecutando el bucle y si se pulsa Cancelar se sale por la puerta de atrás, de manera similar a como se salía en el ejemplo anterior, con EXIT DO.
option explicit
dim cont
dim respuesta
cont = 0
DO
cont = cont +1
respuesta = msgbox (cont,69,"Variable del bucle, con valor 6 se sale")
if (respuesta = 2) then
msgbox "Cuenta Cancelada",16,"Cancelaste!"
exit do
end if
LOOP UNTIL (cont = 6)
El ejemplo es un poco rarito, pero servirá para comprender estos bucles. Se puede ver en funcionamento para entender mejor la manera de ejecutarse que tiene este bucle.
Desarrolloweb.
Por Miguel Angel Alvarez
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
El bucle DO...LOOP es muy versatil. Con el se pueden crear gran variedad de bucles distintos, bucles que comprueben una condición antes de ejecutar el bucle una vez, después de la primera ejecución y con conbinaciones con mientras (WHILE) que se cumple una condición o hasta (UNTIL) que esa condicion se cumpla. la sintaxis de esta estructura es la siguiente:
DO [WHILE | UNTIL (condicion)]
Sentencias
.....
LOOP [WHILE | UNTIL (condicion)]
Vamos a tratar de explicar esta sentencia de manera pausada para que sea más fácil de entender. Lo que siempre tendremos en estos bucles es el DO y el LOOP, entre estos dos colocaremos las sentencias que queremos ejecutar en cada iteración del bucle. Los bucles tienen que evaluar entre cada iteración si se siguen ejecutando o no, para ello evaluan una condición. Lo versatil de este bucle es que la condición se puede expresar de muchas maneras distintas.
Condición expresada al lado del DO: en este caso la condición se evalua antes de empezar a ejecutarse el bucle.
Condición expresada al lado del LOOP: en este caso la condición se evalua después de ejecutarse el bucle. Tiene como diferencia principal frenta al otro método que en este caso el bucle se ejecutará por lo menos una vez.
Además de poder expresar la condición en estos dos sitios también se puede construir la condición con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semanticas de estas dos posibilidades se trasladan también a su manera de funcionar.
Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide cunstantemente el nombre del autor de la página y no para hasta que el nombre sea "migue". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles.
Dim entrada
entrada = ""
DO WHILE (entrada <> "migue")
entrada = inputbox ("Dime el nombre del autor","seguridad","migue",2,3)
if (entrada = "out") then
msgbox "salgo por la puerta de atras"
exit do
end if
LOOP
Podemos ver este ejemplo en funcionamiento.
El siguente ejemplo realiza una cuenta y entre cuenta y cuenta se muestra el valor de la cuenta actual en una ventanita donde sale un botón de Reintentar y otro de Cancelar. Si se pulsa reintentar se sigue ejecutando el bucle y si se pulsa Cancelar se sale por la puerta de atrás, de manera similar a como se salía en el ejemplo anterior, con EXIT DO.
option explicit
dim cont
dim respuesta
cont = 0
DO
cont = cont +1
respuesta = msgbox (cont,69,"Variable del bucle, con valor 6 se sale")
if (respuesta = 2) then
msgbox "Cuenta Cancelada",16,"Cancelaste!"
exit do
end if
LOOP UNTIL (cont = 6)
El ejemplo es un poco rarito, pero servirá para comprender estos bucles. Se puede ver en funcionamento para entender mejor la manera de ejecutarse que tiene este bucle.
Desarrolloweb.
¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Me falto dejar claro que era en php. :roto2:
¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻