Está en la página 1de 6

SENTENCIAS DE CONTROL SENTENCIA IF Las sentencias de flujo tambin llamadas estructuras de control o flujo permite cambiar las secuencias

de instrucciones de un programa y ejecutar varias veces un bloque de las mismas sin necesidad de escribirlas tantas veces como se requieran. Todas las sentencias de control sirven para tomar la decisin de ejecutar o no un bloque de instrucciones dependiendo del resultado de la evaluacin, de una condicin o variable. sintaxis : if then instrucciones else otras instrucciones End if a lo chichombiano: si <condicion> entonces instruccin o si no otras instrucciones fin del if otra forma es : if then instrucciones end if Si entonces Instrucciones Fin del if CASE Estructura de control para ejecutar un bloque de instrucciones solo cuando el resultado de la comparacin de 2 expresiones coincida. Es importante mencionar que las instrucciones asociadas al bloque case de la expresin coincidente se ejecutaran una vez y que el control del programa pasar a la siguiente linea de finalizar. Estructura:

select case expresin case expresin 1 case expresin 2 case else end select en chichombiano:

seleccin de casos expresin caso expresin caso expresin caso expresin o si no este caso fin del case

Estructuras de Repeticin Las estructuras de repeticin o bucle le permiten ejecutar una o ms lneas de cdigo repetidamente. Las estructuras de repeticin que acepta Visual Basic son:

Do...Loop For...Next For Each...Next

Do...Loop Utilice el bucle Do para ejecutar un bloque de sentencias un nmero indefinido de veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evala una condicin numrica para determinar si contina la ejecucin. Como ocurre con If...Then, la condicin debe ser un valor o una expresin que d como resultado False (cero) o True (distinto de cero). En el siguiente ejemplo de Do...Loop, las sentencias se ejecutan siempre y cuando condicin sea True: Do While condicin Sentencias Loop

Cuando Visual Basic ejecuta este bucle Do, primero evala condicin. Si condicin es False (cero), se salta todas las sentencias. Si es True (distinto de cero) Visual Basic ejecuta las sentencias, vuelve a la instruccin Do While y prueba la condicin de nuevo. Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando condicin sea distinta de cero o True. Nunca se ejecutan las sentencias si condicin es False inicialmente. Por ejemplo, este procedimiento cuenta las veces que se repite una cadena destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre la cadena de destino:

Si la cadena destino no est en la otra cadena, InStr devuelve 0 y no se ejecuta el bucle. Otra variante de la instruccin Do...Loop ejecuta las sentencias primero y prueba la condicin despus de cada ejecucin. Esta variacin garantiza al menos una ejecucin de sentencias: Do Sentencias Loop While condicin Hay otras dos variantes anlogas a las dos anteriores, excepto en que repiten el bucle siempre y cuando condicin sea False en vez de True.

For...Next Los bucles Do funcionan bien cuando no se sabe cuntas veces se necesitar ejecutar las sentencias del bucle. Sin embargo, cuando se sabe que se va a ejecutar las sentencias un nmero determinado de veces, es mejor elegir el bucle For...Next. A diferencia del bucle Do, el bucle For utiliza una variable llamada contador que incrementa o reduce su valor en cada repeticin del bucle. La sintaxis es la siguiente: For contador = iniciar To finalizar [Step incremento] Sentencias Next [contador] Los argumentos contador, iniciar, finalizar e incremento son todos numricos.

Nota: El argumento incremento puede ser positivo o negativo. Si incremento es positivo, iniciar debe ser menor o igual que finalizar o no se ejecutarn las sentencias del bucle. Si incremento es negativo, iniciar debe ser mayor o igual que finalizar para que se ejecute el cuerpo del bucle. Si no se establece Step, el valor predeterminado de incremento es 1. Al ejecutar el bucle For, Visual Basic: 1. Establece contador al mismo valor que iniciar. 2. Comprueba si contador es mayor que finalizar. Si lo es, Visual Basic sale del bucle. (Si incremento es negativo, Visual Basic comprueba si contador es menor que finalizar.) 3. Ejecuta las sentencias. 4. Incrementa contador en 1 o en incremento, si se especific. 5. Repite los pasos 2 a 4. Este cdigo imprime los nombres de todas las fuentes de pantalla disponibles:

For Each...Next El bucle For Each...Next es similar al bucle For...Next, pero repite un grupo de sentencia por cada elemento de una coleccin de objetos o de una matriz en vez de repetir las sentencias un nmero especificado de veces. Esto resulta especialmente til si no se sabe cuntos elementos hay en la coleccin. He aqu la sintaxis del bucle For Each...Next: For Each elemento In grupo Sentencias Next elemento Por ejemplo, el siguiente procedimiento Sub abre la base de datos Biblio.mdb y agrega el nombre de cada tabla a un cuadro de lista.

Tenga en cuenta las restricciones siguientes cuando utilice For Each...Next:

Para las colecciones, elemento slo puede ser una variable Variant, una variable Object genrica o un objeto mostrado en el Examinador de objetos. Para las matrices, elemento slo puede ser una variable Variant. No puede utilizar For Each...Next con una matriz de tipos definidos por el usuario porque un Variant no puede contener un tipo definido por el usuario.

El siguiente ejemplo habilita todos los Cuadro de Texto del formulario:

Salida de una Estructura de Control La instruccin Exit le permite salir directamente de un bucle For o de un bucle Do. La sintaxis de la sentencia Exit es sencilla: Exit For puede aparecer tantas veces como sea necesario dentro de un bucle For y Exit Do puede aparecer tantas veces como sea necesario dentro de un bucle Do:

Exit For y Exit Do son muy tiles ya que, algunas veces, resulta apropiado salir inmediatamente de un bucle sin realizar ms iteraciones o sentencias dentro del bucle. Cuando utilice la instruccin Exit para salir de un bucle, el valor de la variable contador difiere, dependiendo de cmo haya salido del bucle:

Cuando termina un bucle, la variable contador contiene el valor del lmite superior ms el paso. Cuando sale de un bucle prematuramente, la variable contador conserva su valor segn las reglas usuales del alcance.

Cuando sale antes del final de una coleccin, la variable contador contiene Nothing si se trata de un tipo de dato Object y Empty si es un tipo de dato Variant.