Você está na 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 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


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 Si condicin Entonces Instruccin(es) Sino Instruccin(es) FinSi Visual Basic 2008 IF condicin Then Instruccin(es) Else Instruccin(es) End IF Pascal IF condicin Then Begin Instruccin(es); End Else Begin Instruccin(es); End; Case VariableOrdinal of Lista1: Begin Instruccin(es); End; Lista1: Begin Instruccin(es); End; Else Begin Instruccin(es); End; End; {CASE}

Decisin, Seleccin o Pregunta

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

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


1 de mar.

If edad >= 18 then Console.writeline( Es ud. Mayor de Edad ) Else Console.writeline( Es ud. Menor de Edad ) End If

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.

Visual Basic 2008


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"

Ejemplo:
Select Case Valor Case 5 Console.WriteLine("El Case 120, 250 Console.WriteLine("El Case 3000 To 4000 Console.WriteLine("El Case Is < 10 Console.WriteLine("El Case Else Console.WriteLine("El End Select

valor es 5") valor es 120 250") valor est en el rango de 3000 a 4000") valor es menor de 10") valor es {0}, y no se cumple ningn caso", Valor)

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

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


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 Ciclo Repetitiva con condicin al inicio ALGOR Mientras condicin Hacer Instruccin(es) FinMientras Visual Basic 2008 While condicin Instruccin(es) End While

Ciclo Repetitivo con condicin al final

Repetir Instruccin(es) Hasta condicin 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

Do Instruccin(es) Loop Until condicin 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

Ciclo de Repeticin Automtica

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

Visual Basic 2008


1 de mar.

INSTRUCCIN Ciclo Repetitivo con condicin al final

Pascal End; Repeat Instruccin(es); Until condicin; 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; Do

Visual Basic 2008

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

Ciclo de Repeticin Automtica

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


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 Do Console.WriteLine("Introducir un Valor = Console.ReadLine() Loop While Valor <> 200 Console.Writeline ("Probando el Do Do Console.WriteLine("Introducir un Valor = Console.ReadLine() Loop Until Valor = 200 End Sub

Loop While") nmero")

Loop Until") nmero")

Visual Basic 2008


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

' 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))

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

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


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.

Você também pode gostar