Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

VBScript

Autor: J. Quijado

Capítulo 6: Bucles 2ª parte

. BUCLES DO UNTIL ... LOOP

Este bucle funciona de manera muy similar al anterior, con la salvedad de que el BLOQUE DE INSTRUCCIONES se ejecuta hasta que (UNTIL) se cumple la condición. Cuando se cumple la condición deja de ejecutarse el bucle. La estructura general es la siguiente:

DO UNTIL (condición)
    BLOQUE DE INSTRUCCIONES
LOOP

Como siempre, la mejor manera de entender el funcionamiento es con un ejemplo. Supongamos el mismo caso de antes. Se tiene que pedir la clave mientras no se introduzca correctamente. Veamos como hacerlo.

Bucle Do...Until
<HTML>
<HEAD>
<TITLE>Prueba de DO WHILE ... LOOP</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    OPTION EXPLICIT
    DIM clave
    clave = ""
    DO UNTIL (clave = "AUTORIZADO") 
        ' Ejecuta hasta que la clave es igual a AUTORIZADO
        clave = INPUTBOX ("Teclea la clave:")
    LOOP
    MSGBOX ("La clave ya es correcta")
</SCRIPT>
</BODY>
</HTML>

El resultado es idéntico al del ejemplo anterior.

. BUCLES WHILE ... WEND

Estos bucles son un vestigio de los primeros tiempos de BASIC. Hoy día han sido sustituidos por los bucles DO WHILE ... LOOP, cuyo funcionamiento es idéntico. Sin embargo, los intérpretes actuales todavía los soportan como complemento, por aquellos programadores acostumbrados al modelo antiguo. Su estructura general es la siguiente:

WHILE (condición)
    BLOQUE DE SENTENCIAS
WEND

De todas formas, me permito aconsejar al lector que no se acostumbre a usar este formato de bucle, ya que es posible que futuras versiones del intérprete dejen de contemplarlo.

. ROMPIENDO BUCLES

En ocasiones es necesario interrumpir de manera forzada la ejecución de un bucle, por ejemplo si se produce una situación que aconseje la continuación del programa ignorando el resto del proceso del bucle. Para ello se emplea la instrucción EXIT. Esta instrucción presenta tres formatos distintos, según el tipo de bucle en que se implemente. Si queremos causar la ruptura de un bucle FOR... NEXT, utilizaremos EXIT FOR. Para romper un bucle DO WHILE ... LOOP o un bucle DO UNTIL ... LOOP utilizaremos la instrucción EXIT DO. Si lo que queremos es romper un bucle WHILE ... WEND usaremos EXIT WHILE. Veamos un ejemplo práctico. Vamos a suponer que estamos contando números y queremos que la cuenta se interrumpa cuando el cuadrado del número por el que vamos sea mayor que 99. Veamos el siguiente código:

Salir de un bucle
<HTML>
<HEAD>
<TITLE>Prueba de EXIT</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    OPTION EXPLICIT
    DIM num
    DIM cuad
    num = 0
    cuad = 0
    DO WHILE (num < 1000)
        num = num + 1
        cuad = num * num
        IF (cuad > 99) THEN
        EXIT DO
        END IF
        DOCUMENT.WRITE("El cuadrado de " & num & " es " & cuad & "<BR>")
    LOOP
    DOCUMENT.WRITE ("Se acabó el bucle.")
</SCRIPT>
</BODY>
</HTML>

El resultado del código anterior es el siguiente:

El cuadrado de 1 es 1
El cuadrado de 2 es 4
El cuadrado de 3 es 9
El cuadrado de 4 es 16
El cuadrado de 5 es 25
El cuadrado de 6 es 36
El cuadrado de 7 es 49
El cuadrado de 8 es 64
El cuadrado de 9 es 81
Se acabó el bucle.

Este ejemplo ilustra el funcionamiento de la instrucción EXIT DO. Los otros dos formatos actúan de manera similar. La instrucción EXIT no es de uso muy frecuente, ya que casi siempre se pueden encontrar soluciones mas elegantes, pero conviene conocerla.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network