Está en la página 1de 10

Visual Basic 2008

Estructuras de Control: Decisin y Repeticin




Las estructuras de control de un lenguaje de
programacin permiten seleccionar o decidir las acciones
a ejecutar segn un valor o condicin, as como, permiten
repetir un conjunto de instrucciones Mientras o Hasta que
una condicin se cumpla

Lisbeth C. Pacheco S.
01/03/2010
Revisada y Corregida por Manuel Fernndez
Publicacin Pendiente.
Visual Basic 2008


1
1 de mar.

Contenido

Estructuras de Control ........................................................................................................................ 2
Estructuras Selectivas o de Decisin. .................................................................................................. 2
Estructura Selectiva If .................................................................................................................. 2
Estructura Selectiva Select Case .................................................................................................. 3
Otras Formas del IF ..................................................................................................................... 4
Decisin simple en una lnea ....................................................................................................... 4
Decisin doble en una lnea ........................................................................................................ 5
Estructuras Repetitivas........................................................................................................................ 5
Otras Formas de la Estructura Cclica Do...Loop ................................................................................. 6
Condicin al principio .................................................................................................................. 7
Condicin al final ......................................................................................................................... 7
Particularidades del Lenguaje ............................................................................................................. 8
Divisin de una lnea de cdigo ................................................................................................... 8
Escritura de varias sentencias en la misma lnea ........................................................................ 8
Referencias .......................................................................................................................................... 9


Visual Basic 2008


2
1 de mar.
Estructuras de Control
Estructuras Selectivas o de Decisin.
Las estructuras de seleccin o decisin permiten ejecutar un bloque de cdigo entre varios
disponibles, segn el resultado de la evaluacin de una expresin situada en la cabecera de la
estructura.
INSTRUCCIN Pseudocdigo Visual Basic 2008 Pascal
Decisin,
Seleccin o
Pregunta

Si condicin Entonces
Instruccin(es)
Sino
Instruccin(es)
FinSi

IF condicin Then
Instruccin(es)
Else
Instruccin(es)
End IF


IF condicin Then
Begin
Instruccin(es);
End
Else
Begin
Instruccin(es);
End;
Selector
Mltiple

Segn sea expresin Hacer
Caso expresin constante
Instruccin(es)
Caso expresin constante
Instruccin(es)
Otros
Instruccin(es)
Fin_Segun

Select Case
VariableName
Case 1
Instruccin(es)
Case 2
Instruccin(es)
Case Else
Instruccin(es)
End Select


Case VariableOrdinal of
Lista1: Begin
Instruccin(es);
End;
Lista1: Begin
Instruccin(es);
End;
Else Begin
Instruccin(es);
End;
End; {CASE}

Estructura Selectiva If
La setencia If comprueba una condicin, si al evaluarla el resultado es true el programa ejecuta las
instrucciones o sentencias que se encuentren a continuacin, en caso contrario se ejecutan las
instrucciones o sentencias ubicadas en el else.
El else puede omitirse en el caso de que no se desee se efecten acciones o instrucciones cuando
al evaluar la condicin de cmo resultado false.
Ejemplos:


If edad >= 18 then
Console.writeline( Es ud. Mayor de Edad )
End If
Visual Basic 2008


3
1 de mar.






Estructura Selectiva Select Case
Se trata de una evolucin en la estructura If...End If de decisin mltiple, y su trabajo consiste en
evaluar una expresin y comparar el resultado con la lista de expresiones de cada uno de los casos
proporcionados.
La lista de expresiones asociada a cada Case en esta estructura estar separada por comas y podr
tener alguno de los siguientes formatos:
Expresin
ExpresinMenor To ExpresinMayor
Is OperadorComparacin Expresin
Tras evaluar la expresin de la estructura, si se encuentra una coincidencia con alguno de los Case,
se ejecuta el bloque de cdigo situado entre dicho Case y el siguiente. En caso de que no haya
ninguna coincidencia, podemos opcionalmente, ejecutar un bloque por defecto, utilizando la
palabra clave Case Else. Finalizada esta estructura, la ejecucin continuar a partir de la lnea
situada despus de End Select.
If edad >= 18 then
Console.writeline( Es ud. Mayor de Edad )
Else
Console.writeline( Es ud. Menor de Edad )
End If
Visual Basic 2008


4
1 de mar.
En el caso de que tras evaluar la expresin, haya ms de un Case cuya lista de expresiones se
cumpla, se ejecutar el que est situado en primer lugar. En el ejemplo a continuacin, cuando la
variable Valor contiene 5, se cumplen dos casos. Sin embargo slo se ejecuta el cdigo del primer
Case, esto es imprimir o mostrar el mensaje "El valor es 5"
Otras Formas del IF
Decisin simple en una lnea
En el caso de que slo haya que ejecutar una instruccin sencilla cuando se cumple la expresin de
la estructura, podemos omitir la palabra clave End If, escribiendo la sentencia a ejecutar en la
misma lnea de la declaracin de la estructura If, justo a continuacin de la palabra Then. La
sintaxis en este caso, se simplifica, como se muestra a continuacin

If Expresin Then Instruccin


Ejemplo:

Select Case Valor
Case 5
Console.WriteLine("El valor es 5")
Case 120, 250
Console.WriteLine("El valor es 120 250")
Case 3000 To 4000
Console.WriteLine("El valor est en el rango de 3000 a 4000")
Case Is < 10
Console.WriteLine("El valor es menor de 10")
Case Else
Console.WriteLine("El valor es {0}, y no se cumple ningn caso", Valor)
End Select
Module Module1

Sub Main()
Dim Valor As Integer
Dim Resultado As String
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
If Valor <=10 Then Resultado = Aprobado Else Resultado = Reprobado
Console.WriteLine("La variable resultado contiene {0}", Resultado)
Console.ReadLine()
End Sub

Visual Basic 2008


5
1 de mar.
Decisin doble en una lnea
Al igual que ocurre con la decisin simple, si para cada resultado de la expresin, slo necesitamos
ejecutar una instruccin, podemos escribir todo el cdigo en una sola lnea.

If Expresin Then InstruccinVerdadero Else InstruccinFalso

Si bien la ejecucin de la estructura If en una lnea puede ser til en ocasiones, tiene como
contrapartida el que nuestro cdigo sea ms difcil de leer. Por ello es ms recomendable el uso de
esta estructura de control en su formato If...End If.
Estructuras Repetitivas
Estas estructuras, tambin denominadas bucles, ejecutan un bloque de cdigo de forma repetitiva
mientras se cumpla una condicin asociada a la estructura. A cada una de las ocasiones en que se
ejecuta el cdigo contenido en estas estructuras se le denomina iteracin.
INSTRUCCIN ALGOR Visual Basic 2008
Ciclo Repetitiva
con condicin
al inicio

Mientras condicin Hacer
Instruccin(es)
FinMientras


While condicin
Instruccin(es)
End While
Ciclo Repetitivo
con condicin
al final

Repetir
Instruccin(es)
Hasta condicin


Do
Instruccin(es)
Loop Until condicin
Ciclo de
Repeticin
Automtica
incremento por omisin Sucesor (1)
Para Variable <-Vi hasta Vf hacer
Instruccin(es)
FinPara

incremento variable inc
Para Variable <-Vi hasta Vf paso Inc hacer
Instruccin(es)
FinPara
incremento por omisin uno (1)
For Variable <-Vi hasta Vf
Instruccin(es)
Next variable

incremento variable inc
For Variable <-Vi to Vf step Inc
Instruccin(es)
Next variable

En otros Lenguaje:
INSTRUCCIN Pascal Visual Basic 2008
Ciclo Repetitiva
con condicin
al inicio
While condicin Do
Begin
Instruccin(es);
While condicin
Instruccin(es)
End While
Visual Basic 2008


6
1 de mar.
INSTRUCCIN Pascal Visual Basic 2008
End;
Ciclo Repetitivo
con condicin
al final
Repeat
Instruccin(es);
Until condicin;
Do
Instruccin(es)
Loop Until condicin
Ciclo de
Repeticin
Automtica

incremento por omisin Sucesor (1)
For Variable := Vi TO Vf Do
Begin
Instruccin(es);
End;

decremento por omisin Predecesor (-1)
For Variable := Vi DOWNTO Vf Do
Begin
Instruccin(es);
End;

incremento por omisin uno (1)
For Variable = Vi To Vf
Instruccin(es)
Next variable


incremento variable inc
For Variable = Vi to Vf step Inc
Instruccin(es)
Next variable

Ejemplo:
Sub Main()
Dim Valor As Integer
Dim Palabra As String
Dim Contador As Integer
Dim Pruebas As Integer
Console.Writeline ("Probando el While End While")
Valor = 100
While Valor <> 200
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
End While
Console.Writeline ("Probando el Repeat - Until")
Repeat
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
Until Valor = 200
End Sub
Otras Formas de la Estructura Cclica Do...Loop
Esta estructura ejecuta un conjunto de lneas de cdigo, en funcin del valor devuelto por una
expresin, que a modo de condicin, podemos situar al comienzo o final de la estructura. Es
posible adems, no utilizar la expresin de evaluacin al principio o final, debiendo en ese caso,
introducir alguna condicin en el interior del cdigo de la estructura, para forzar la salida del bucle
y evitar caer en un bucle infinito.

Visual Basic 2008


7
1 de mar.
Condicin al principio
Do While | Until Expresin
' Instrucciones
' ......
Loop

La diferencia entre usar While o Until reside en que empleando While, el cdigo del bucle se
ejecutar mientras la expresin devuelva Verdadero. En el caso de Until, el cdigo se ejecutar
mientras que la expresin devuelva Falso. Ejemplo
Sub Main()
Dim Valor As Integer
Dim Palabra As String
Dim Contador As Integer
Dim Pruebas As Integer
Console.Writeline ("Probando el Do While")
Valor = 100
Do While Valor <> 200
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
Loop
Console.Writeline ("Probando el Do Until")
Do Until Valor = 200
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
Loop
End Sub
Condicin al final
Do
' instrucciones
' ......
Loop While | Until Expresin

La diferencia en este caso, consiste en que el contenido de la estructura se ejecuta al menos una
vez.

Sub Main()
Dim Valor As Integer
Dim Palabra As String
Dim Contador As Integer
Dim Pruebas As Integer
Console.Writeline ("Probando el Do - Loop While")
Do
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
Loop While Valor <> 200
Console.Writeline ("Probando el Do Loop Until")
Do
Console.WriteLine("Introducir un nmero")
Valor = Console.ReadLine()
Loop Until Valor = 200

End Sub
Visual Basic 2008


8
1 de mar.

Particularidades del Lenguaje

Divisin de una lnea de cdigo

Si tenemos en nuestro programa lneas de cdigo muy largas, que nos obliguen a desplazarnos
hacia una lateral de la ventana del editor de cdigo para poder leerlas, podemos dividir ese tipo de
lnea lgica de cdigo en varias lneas fsicas, situando el carcter de guin bajo ( _ ) en el punto de
la lnea de cdigo en donde queremos continuar, teniendo en cuenta que siempre debe haber un
espacio en blanco antes y despus de este carcter, para que la divisin de la lnea sea efectiva.

Escritura de varias sentencias en la misma lnea

Aqu tenemos el caso opuesto al anterior apartado. El lenguaje nos permite escribir en una misma
' una sola lnea lgica y fsica

Resultado = ((30 + 5) * 5 > 100) And (52 > 200 / (2 + 5))

' varias lneas fsicas, aunque internamente
' el compilador reconoce una sola lnea lgica

Resultado = ((30 + 5) * 5 > 100) And _
(52 > 200 / _
(2 + 5))

Sub Main()
Dim Valor As Integer, Nombre As String, Resultado As Boolean
' en la siguiente lnea hay tres sentencias que
' habitualmente se escriben en lneas separadas
Valor = 50 : Nombre = "Julio" : Resultado = 50 <> 275
Console.WriteLine("Contenido de variables: {0} - {1} - {2}", _
Valor, Nombre, Resultado)
Console.ReadLine()
End Sub


Visual Basic 2008


9
1 de mar.
lnea fsica, varias sentencias separadas por el carcter de dos puntos ( : ), que en condiciones
normales se escriben en lneas separadas.

Si bien en algunas situaciones puede ser til, esta caracterstica hace que nuestro cdigo sea ms
complicado de leer, restndole claridad a nuestra aplicacin, por lo que recomendamos no
utilizarla salvo en casos muy necesarios.
Referencias

Blanco, Luis Miguel (2002). Fundamentos de Programacin en Visual Basic . Net. Grupo
Eidos.
Petroutsos, Evangelos (2008). La Biblia de Visual Basic 2008. Anaya Multimedia
Buyens, Jim (2003). Introduccin a la Programacin, Mc. Graw Hill.

También podría gustarte