Basic Facil - Sentencias de Control
Curso gratis creado por
Ivan Tecuapacho Cosetl
11 de Febrero de 2006
Lenguaje Basic
6 - Sentencias de Control
Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones
y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de estructuras son comunes en cuanto a concepto en la mayoría de los lenguajes de programación,
aunque su sintaxis puede variar de un lenguaje de programación a otro. Se trata de unas estructuras
muy importantes ya que son las encargadas de controlar el flujo de un programa según los
requerimientos del mismo. Visual Basic 6.0 dispone de las siguientes estructuras de control:
If ... Then ... Else
Select Case
For ... Next
Do ... Loop
While … Wend
For Each … Next
3.6.1 Sentencia IF ... THEN ... ELSE ...
Esta estructura permite ejecutar condicionalmente una o más sentencias y puede escribirse de dos
formas. La primera ocupa sólo una línea y tiene la forma siguiente:
If condicion Then sentencia1 [Else sentencia2]
La segunda es más general y se muestra a continuación:
If condicion Then
sentencia(s)
[Else
sentencia(s)]
End If
Si condicion es True (verdadera), se ejecutan las sentencias que están a continuación de
Then, y si condicion es False (falsa), se ejecutan las sentencias que están a continuación de Else, si
esta cláusula ha sido especificada (pues es opcional). Para indicar que se quiere ejecutar uno de
varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura
adecuada es la siguiente:
If condicion1 Then
sentencias1
ElseIf condicion2 Then
sentencias2
Else
sentencia-n
End If
Si se cumple la condicion1 se ejecutan las sentencias1, y si no se cumple, se examinan
secuencialmente las condiciones siguientes hasta Else, ejecutándose las sentencias correspondientes
al primer ElseIf cuya condición se cumpla. Si todas las condiciones son falsas, se ejecutan las
sentencias-n correspondientes a Else, que es la opción por defecto
Por ejemplo,
Numero = 53 ' Se inicializa la variable.
If Numero < 10 Then
Digitos = 1
ElseIf Numero < 100 Then
' En este caso la condición se cumple (True) luego se ejecuta lo siguiente.
Digitos = 2
Else 'En el caso en que no se cumplan los dos anteriores se asigna 3
Digitos = 3
End If
Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión.
Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes
valores. Su forma general es la siguiente:
Select Case expresion
Case etiq1
[sentencias1]
Case etiq2
[sentencias2]
Case Else
sentenciasn
End Select
donde expresion es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las
formas siguientes:
1. expresion
2. expresion To expresion
3. Is operador-de-relación expresion
4. combinación de las anteriores separadas por comas
Por ejemplo,
Numero = 8 ' Se inicializan las variable.
Select Case Numero ' Se va a evaluar la variable Numero.
Case 1 To 5 ' Numero está entre 1 y 5.
Resultado = "Se encuentra entre 1 y 5"
' Lo siguiente se ejecuta si es True la expresión.
Case 6, 7, 8 ' Numero es uno de los tres valores.
Resultado = "Se encuentra entre 6 y 8"
Case Is = 9 , Is = 10 ' Numero es 9 ó 10.
Resultado = "El valor es 9 o 10"
Case Else ' Resto de valores.
Resultado = "El número no se encuentra entre 1 y 10"
End Select
Cuando se utiliza la forma expresion To expresion, el valor más pequeño debe aparecer en
primer lugar.
Cuando se ejecuta una sentencia Select Case, Visual Basic evalúa la expresion y el control
del programa se transfiere a la sentencia cuya etiqueta tenga el mismo valor que la expresión
evaluada, ejecutando a continuación el correspondiente bloque de sentencias. Si no existe un valor
igual a la expresion entonces se ejecutan las sentencias a continuación de Case Else.
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto
número de veces. Su forma general es:
For variable = expresion1 To expresion2 [Step expresion3]
[sentencias]
Exit For
[sentencias]
Next [variable]
Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable
y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan
las sentencias, y en caso de ser mayor el control del programa salta a las líneas a continuación de
Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarán las
sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la
variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volviéndose a
efectuar la comparación entre la variable y la expresion2, y así sucesivamente.
La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste
finalice. Por ejemplo,
MyString="Informática "
For Words = 3 To 1 Step -1 ' 3 veces decrementando de 1 en 1.
For Chars = Words To Words+4 '5 veces.
MyString = MyString & Chars ' Se añade el número Chars al string.
Next Chars ' Se incrementa el contador
MyString = MyString & " " ' Se añade un espacio.
Next Words
'El valor de MyString es: Informática 34567 23456 12345
Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea
cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o después
de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:
' Formato 1:
Do [{While/Until} condicion]
[sentencias]
[Exit Do]
[sentencias]
Loop
' Formato 2:
Do
[sentencias]
[Exit Do]
[sentencias]
Loop [{While/Until}condicion]
La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice
éste. Por ejemplo,
Check = True ' Se inicializan las variables.
Counts = 0
Do ' Empieza sin comprobar ninguna condición.
Do While Counts < 20 ' Bucle que acaba si Counts>=20 o con Exit Do.
Counts = Counts + 1 ' Se incrementa Counts.
If Counts = 10 Then ' Si Counts es 10.
Check = False ' Se asigna a Check el valor False.
Exit Do ' Se acaba el segundo Do.
End If
Loop
Loop Until Check = False ' Salir del "loop" si Check es False.
En el ejemplo mostrado, se sale de los bucles siempre con Counts = 10. Es necesario fijarse
que si se inicializa Counts con un número mayor o igual a 10 se entraría en un bucle infinito (el
primer bucle acabaría con Counts = 20 pero el segundo no finalizaría nunca, bloqueándose el
programa y a veces el ordenador).
Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición
inicial. Su estructura es la siguiente:
While condicion
[sentencias]
Wend
Por ejemplo,
Counts = 0 ' Se inicializa la variable.
While Counts < 20 ' Se comprueba el valor de Counts.
Counts = Counts + 1 ' Se incrementa el valor de Counts.
Wend ' Se acaba el bucle cuando Counts > 19.
En cualquier caso se recuerda que la mejor forma de mirar y aprender el funcionamiento de
todas estas sentencias es mediante el uso del Help de Visual Basic. Ofrece una explicación de cada
comando con ejemplos de utilización.
Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la
repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los elementos
de un array (o de una colección de objetos). La forma general es la siguiente:
For Each variable In grupo
[sentencias]
Next variable
Con arrays variable tiene que ser de tipo Variant. Con colecciones variable puede ser
Variant o una variable de tipo Object. Esta construcción es muy útil cuando no se sabe el número
de elementos que tiene el array o la colección de objetos.
y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de estructuras son comunes en cuanto a concepto en la mayoría de los lenguajes de programación,
aunque su sintaxis puede variar de un lenguaje de programación a otro. Se trata de unas estructuras
muy importantes ya que son las encargadas de controlar el flujo de un programa según los
requerimientos del mismo. Visual Basic 6.0 dispone de las siguientes estructuras de control:
If ... Then ... Else
Select Case
For ... Next
Do ... Loop
While … Wend
For Each … Next
3.6.1 Sentencia IF ... THEN ... ELSE ...
Esta estructura permite ejecutar condicionalmente una o más sentencias y puede escribirse de dos
formas. La primera ocupa sólo una línea y tiene la forma siguiente:
If condicion Then sentencia1 [Else sentencia2]
La segunda es más general y se muestra a continuación:
If condicion Then
sentencia(s)
[Else
sentencia(s)]
End If
Si condicion es True (verdadera), se ejecutan las sentencias que están a continuación de
Then, y si condicion es False (falsa), se ejecutan las sentencias que están a continuación de Else, si
esta cláusula ha sido especificada (pues es opcional). Para indicar que se quiere ejecutar uno de
varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura
adecuada es la siguiente:
If condicion1 Then
sentencias1
ElseIf condicion2 Then
sentencias2
Else
sentencia-n
End If
Si se cumple la condicion1 se ejecutan las sentencias1, y si no se cumple, se examinan
secuencialmente las condiciones siguientes hasta Else, ejecutándose las sentencias correspondientes
al primer ElseIf cuya condición se cumpla. Si todas las condiciones son falsas, se ejecutan las
sentencias-n correspondientes a Else, que es la opción por defecto
Por ejemplo,
Numero = 53 ' Se inicializa la variable.
If Numero < 10 Then
Digitos = 1
ElseIf Numero < 100 Then
' En este caso la condición se cumple (True) luego se ejecuta lo siguiente.
Digitos = 2
Else 'En el caso en que no se cumplan los dos anteriores se asigna 3
Digitos = 3
End If
Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión.
Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes
valores. Su forma general es la siguiente:
Select Case expresion
Case etiq1
[sentencias1]
Case etiq2
[sentencias2]
Case Else
sentenciasn
End Select
donde expresion es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las
formas siguientes:
1. expresion
2. expresion To expresion
3. Is operador-de-relación expresion
4. combinación de las anteriores separadas por comas
Por ejemplo,
Numero = 8 ' Se inicializan las variable.
Select Case Numero ' Se va a evaluar la variable Numero.
Case 1 To 5 ' Numero está entre 1 y 5.
Resultado = "Se encuentra entre 1 y 5"
' Lo siguiente se ejecuta si es True la expresión.
Case 6, 7, 8 ' Numero es uno de los tres valores.
Resultado = "Se encuentra entre 6 y 8"
Case Is = 9 , Is = 10 ' Numero es 9 ó 10.
Resultado = "El valor es 9 o 10"
Case Else ' Resto de valores.
Resultado = "El número no se encuentra entre 1 y 10"
End Select
Cuando se utiliza la forma expresion To expresion, el valor más pequeño debe aparecer en
primer lugar.
Cuando se ejecuta una sentencia Select Case, Visual Basic evalúa la expresion y el control
del programa se transfiere a la sentencia cuya etiqueta tenga el mismo valor que la expresión
evaluada, ejecutando a continuación el correspondiente bloque de sentencias. Si no existe un valor
igual a la expresion entonces se ejecutan las sentencias a continuación de Case Else.
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto
número de veces. Su forma general es:
For variable = expresion1 To expresion2 [Step expresion3]
[sentencias]
Exit For
[sentencias]
Next [variable]
Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable
y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan
las sentencias, y en caso de ser mayor el control del programa salta a las líneas a continuación de
Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarán las
sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la
variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volviéndose a
efectuar la comparación entre la variable y la expresion2, y así sucesivamente.
La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste
finalice. Por ejemplo,
MyString="Informática "
For Words = 3 To 1 Step -1 ' 3 veces decrementando de 1 en 1.
For Chars = Words To Words+4 '5 veces.
MyString = MyString & Chars ' Se añade el número Chars al string.
Next Chars ' Se incrementa el contador
MyString = MyString & " " ' Se añade un espacio.
Next Words
'El valor de MyString es: Informática 34567 23456 12345
Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea
cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o después
de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:
' Formato 1:
Do [{While/Until} condicion]
[sentencias]
[Exit Do]
[sentencias]
Loop
' Formato 2:
Do
[sentencias]
[Exit Do]
[sentencias]
Loop [{While/Until}condicion]
La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice
éste. Por ejemplo,
Check = True ' Se inicializan las variables.
Counts = 0
Do ' Empieza sin comprobar ninguna condición.
Do While Counts < 20 ' Bucle que acaba si Counts>=20 o con Exit Do.
Counts = Counts + 1 ' Se incrementa Counts.
If Counts = 10 Then ' Si Counts es 10.
Check = False ' Se asigna a Check el valor False.
Exit Do ' Se acaba el segundo Do.
End If
Loop
Loop Until Check = False ' Salir del "loop" si Check es False.
En el ejemplo mostrado, se sale de los bucles siempre con Counts = 10. Es necesario fijarse
que si se inicializa Counts con un número mayor o igual a 10 se entraría en un bucle infinito (el
primer bucle acabaría con Counts = 20 pero el segundo no finalizaría nunca, bloqueándose el
programa y a veces el ordenador).
Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición
inicial. Su estructura es la siguiente:
While condicion
[sentencias]
Wend
Por ejemplo,
Counts = 0 ' Se inicializa la variable.
While Counts < 20 ' Se comprueba el valor de Counts.
Counts = Counts + 1 ' Se incrementa el valor de Counts.
Wend ' Se acaba el bucle cuando Counts > 19.
En cualquier caso se recuerda que la mejor forma de mirar y aprender el funcionamiento de
todas estas sentencias es mediante el uso del Help de Visual Basic. Ofrece una explicación de cada
comando con ejemplos de utilización.
Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la
repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los elementos
de un array (o de una colección de objetos). La forma general es la siguiente:
For Each variable In grupo
[sentencias]
Next variable
Con arrays variable tiene que ser de tipo Variant. Con colecciones variable puede ser
Variant o una variable de tipo Object. Esta construcción es muy útil cuando no se sabe el número
de elementos que tiene el array o la colección de objetos.
Valora este capítulo:
Opiniona sobre 'Basic Facil - Sentencias de Control' (27)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este curso gratis |
Wikis relacionados con 'Basic Facil - Sentencias de Control'
Documento con fundamentos teóricos de control de accesos en redes telemáticas; se tratan temas como...
Más »
Desde el comienzo, desde aquel primer hombre, se encuentra en nosotros la necesidad de inserción...
Más »
En las épocas actuales en donde priman los aspectos económicos de la globalización, de la...
Más »
La manera más usual de cambiar el fondo de una imagen es con la herramienta...
Más »
En entidades sin ánimo de lucro, las decisiones tomadas por los directivos se encaminan a...
Más »
