Programar con Visual BASIC (VI)

Ariel Palazzesi . Vista 33653 veces

Tal como habíamos prometido, en esta entrega del tutorial de Visual Basic veremos el resto de los bucles de control. Se trata de las instrucciones del tipo “Do…Loop” (y sus variantes)  y “While…End”. También veremos como funciona “GoTo”, que tiene el honor de ser una de las instrucciones más polémicas de todos los lenguajes de programación.


  • En la quinta entrega de este pequeño tutorial, vimos que con FOR…NEXT podíamos resolver aquellas situaciones en las que un grupo de instrucciones debían repetirse un numero determinado de veces. Pero existen otras situaciones, y aparecen con mucha frecuencia, en las que no se conoce de antemano el número de iteraciones que debería tener nuestro bucle.

    A pesar de que un programador con experiencia siempre encontrará la forma de afrontar esas situaciones haciendo uso de FOR…NEXT, resulta mas fácil, apropiado y eficiente emplear las instrucciones que el repertorio sentencias de Visual Basic pone a nuestra disposición. Veamos cuales son.

    Do…Loop
    El bucle DO...LOOP es muy versátil. Tanto, que puede reemplazar a FOR…NEXT en casi todos los casos. Con él se pueden crear una gran variedad de bucles diferentes, dependiendo si comprueban una condición antes de ejecutar el bucle una vez; después de la primera ejecución; mientras que se cumple la condición o hasta que la mencionada condición se cumpla. La sintaxis básica de esta estructura es la siguiente:

    Do
        Instrucciones…
        [Exit Do]
        Instrucciones…
    Loop

    Esta es la forma más simple de escribir este tipo de bucle. Las instrucciones comprendidas entre el Do y el Loop se ejecutaran indefinidamente. Resulta muy apropiado para aquellos casos en que nuestro programa se encuentra esperando que ocurra alguna situación determinada, a la vez que repite un grupo de instrucciones.

    La opción “Exit Do” permite abandonar el bucle cuando lo deseemos. En general, una sentencia “If…Then” comprueba el valor de alguna expresión, y cuando dicha expresión es verdadera, se ejecuta el “Exit Do”. El siguiente ejemplo ilustra este caso:

            Dim edad As Integer
            edad = 20

            Do
                edad = edad - 1
                If edad = 0 Then
                    Exit Do
                End If
            Loop

    Como puede verse, el bucle se repetirá mientras que el valor de “edad” sea diferente de cero. Cuando esto ocurre, la condición que evalúa el “If…Then” será verdadera y el control del programa saltará a la instrucción que haya a continuación del “Loop”.

    La opción “Exit Do” permite abandonar el bucle cuando lo deseemos. La opción “Exit Do” permite abandonar el bucle cuando lo deseemos.

    La segunda forma en que se puede escribir un bucle “Do…Loop” es la que sigue:

    Do { While | Until } condición
        Instrucciones…
        [Exit Do]
        Instrucciones…
    Loop

    Por supuesto, no podemos utilizar “While” y “Until” a la vez. En esta forma del bucle, la condición se evalúa al comienzo del mismo. En el caso de utilizar la opción “While”, el bucle se repetirá mientras que la condición sea verdadera. Podemos escribir el ejemplo anterior utilizando esta posibilidad:

            Do While edad <> 0
                edad = edad - 1
            Loop

    Como puede verse, es mucho más simple utilizar “While” que “If…Then” y “Exit Do”. Aclaramos que la condición evalúa que edad sea diferente de cero.

    También podríamos haber resuelto el problema con el uso de “Until”:

            Do Until edad = 0
                edad = edad - 1
            Loop

    En este caso, el bucle se repetirá hasta que edad sea igual a cero. En estos dos ultimo ejemplos puede darse el caso de que, si edad es igual a cero cuando se llega a la instrucción “Do”, las instrucciones existentes en el interior del bucle no se ejecuten nunca.

    El bucle se repetirá hasta que edad sea igual a cero. El bucle se repetirá hasta que edad sea igual a cero.

    La tercera forma que puede adoptar el bucle que estamos analizando es la siguiente:

    Do
        Instrucciones…
        [Exit Do]
        Instrucciones…
    Loop { While | Until } condición

    Como puede verse, se ha delegado la capacidad de evaluar la condición al final del bucle. Esto tiene la particularidad de permitir que el grupo de instrucciones existentes en el interior del bucle se ejecuten al menos una vez, independientemente de que la condición a evaluar sea o no verdadera.

    Nuestro ejemplo podría resolverse así:

            Dim edad As Integer
            edad = 20

            Do
                edad = edad - 1
            Loop Until edad = 0

    O asi:

            Dim edad As Integer
            edad = 20

            Do
                edad = edad - 1
            Loop While edad <> 0

    Se puede evaluar la condición al final del bucle. Se puede evaluar la condición al final del bucle.

    En todos los casos puede utilizarse, entre las instrucciones que están dentro del bucle, la sentencia “Continue Do”, que hace que el control del programa salte nuevamente al “Do…”, repitiendo el ciclo actual.

    Veamos ahora como utilizar “While…End

¿Y tú, qué opinas?

  • #1 jason
    jason martes, 22 de julio de 2008, 21:37

    sin ser mi lenguaje favorito.. creo que es bueno para empezar y luego adentrarse en materias como .net y otros.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #2 binartu
    binartu martes, 12 de agosto de 2008, 10:08

    El tutorial está muy bien. Gracias por su trabajo.
    Por otra parte, la segunda parte no funciona y no es posible verla, al menos desde los enlaces de los otros capítulos del tutorial.

    Un saludo.

    Responder >> Attention Minus Plus Votos: 1 de 1
  • #3 jenny mejia
    jenny mejia viernes, 08 de mayo de 2009, 16:10

    hola necesito porfavor si alguien me puede ayudar con el uso de la sintaxis y ejemplos de las sig. funciones:
    if...then...endif, do while...loop, do...loop while, docase

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #5 alee
    alee martes, 02 de marzo de 2010, 02:35

    Ola chiko como tass,, fijate qe estoi en la clase de ibarra ya es noche tengo hambre y se me va a pasar el camion ya me qiiero irr,,, necesito qe me digas como sumar en visual basic cantidades menores a 1000 & restar mayores a mil porfavorrr urGeee contestameeee me qiiero IRRRRRRRRRRRRRRrr¡¡¡¡¡¡¡¡ TENGO HAMBRe¡¡¡¡¡¡¡¡¡¡¡¡¡¡ contesta porfavo te dejo mi numero 6672073770

    Responder >> Attention Minus Plus Votos: 1 de 1
  • #6 <a href="../../foro/member.php?u=29664" target="_self">vicragu</a>
    vicragu viernes, 08 de octubre de 2010, 04:30

    hola esoty busacando un codigo con el cual pueda hacer una grafica estadistica utilizando vb6.0 y sacando la informacion de una base de datos. si alguiente tiene el conocimiento de como puedo empesar hacer este codigo selos agradeceria mucho aqui les dejo mi correo
    fusilero5812@hotmail.com

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #7 alirio
    alirio jueves, 11 de noviembre de 2010, 23:28

    Tengo una hoja de calculo con los titulos de 2000 canciones. Lo quiero hacer es que al cliquear sobre cualquiera de eellas, se escuche la canción. COmo construir la base de datos de las direcciones de los archivos contentivos de dichas canciones y como poder acceder desde excell? Quien me puede ayudar? Gracias

    Responder >> Attention Minus Plus Votos: 0 de 0
  • Cargando...Cargando...

  • nuevo comentario
    Nombre

    Campo obligatorio

    Email

    Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.

    Campo obligatorio

 
Ir arriba