lunes, 15 de diciembre de 2008

Sobre Ciclos (II)

Tachi [tachi@dmegui.dpegr.rimed.cu]

ESTRUCTURAS DE REPETICIÓN DO...LOOP EN VISUAL BASIC

Estructura de repetición Do...Loop

La estructura Do...Loop al igual que la estructura For...Next se utiliza para ejecutar una serie de instrucciones pero con un número de repeticiones indeterminado (se conoce como ciclo indeterminado ya que el programa no sabe de ante mano el número de repeticiones que ejecutará el ciclo). En todas las variantes de la estructura Do...Loop al igual que en la For…Next el ciclo evalúa una expresión para determinar la continuación o no del ciclo.

Sintaxis:
Do While <condición>
  <Instrucciones>
Loop

El primer parámetro que espera la estructura es la condición. La condición debe de ser alguna expresión que se pueda evaluar como True (verdadero) o False (falso).
Ej.: i < 10

El segundo parámetro son las instrucciones que se ejecutarán en cada repetición del ciclo.
Ej.: Print “Esto es un ciclo Do…Loop.”

El parámetro Loop indica el final de las instrucciones (o final del cuerpo).

El siguiente ejemplo utiliza la estructura Do…Loop para obtener los números del 0 al 9:

Dim i As Integer
i = 0
Do While i <= 9
  Print i
  i = i + 1
Loop

En este caso la variable “i”, que hace el papel de contador, a diferencia de For…Next si debe de ser inicializada antes de la instrucción Do…Loop.

¿Quieres que te explique cómo funciona esta otra estructura? ño!!…te gusta la muela ?

Pues al programa llegar a la estructura Do…Loop, verifica que la expresión sea verdadera. En este caso la expresión se hace verdadera siempre que el contador “i” sea menor o igual (<=) que 9. Siempre que la expresión es verdadera se ejecutan las instrucciones contenidas en el cuerpo de la estructura.

Algo que siempre se debe tener en cuenta al implementar una estructura de repetición mediante Do...Loop es que una de las instrucciones contenidas en el cuerpo de la estructura debe de convertir en falsa (False) la expresión de continuación de ciclo. En el ejemplo planteado siempre que el valor de la condición sea verdadero la segunda cosa que se hará en el ciclo es aumentar en 1 al contador: i = i + 1, de esta forma la expresión en algún momento tomará el valor 10 y se convertirá en falsa, terminando inmediatamente el ciclo y continuando el programa con la ejecución de las instrucciones que se encuentren inmediatamente después del Loop.

Cuando la variable “i” toma el valor 10 se produce lo que se llama fuera de ciclo, terminando inmediatamente el ciclo.

Si en este tipo de ciclo no existe una instrucción que convierta en falsa la expresión de continuación de ciclo se produciría lo que se conoce como ciclo infinito, es decir, el ciclo nunca termina ya que la expresión nunca será falsa, provocando el cuelgue o congelamiento de la aplicación o como se te ocurra llamarlo, la cuestión es que la aplicación se bloquea.

En la estructura de repetición Do...Loop se puede implementar lo que se conoce como ciclo controlado por centinela. Este tipo de ciclo se utiliza mayormente en los lenguajes estructurados como C.

Al principio de iniciar la explicación de esta estructura dije: (…) En todas las variantes de la estructura Do...Loop (…)

Las variantes de esta estructura son:
Do <condición>
  <Instrucciones>
Loop While

Do Until <condición>
  <Instrucciones>
Loop

Do
  <Instrucciones>
Loop Until <condición>

La primera variante realiza primero las instrucciones contenidas en el cuerpo de la estructura y luego prueba la condición garantizando que las instrucciones se ejecuten al menos una ves.

La segunda y tercera variante realizan el grupo de instrucciones siempre que la condición sea falsa (False). La forma en que operan es en correspondencia igual que las anteriores.

¿Que quieres más?
¿Eso es broma verdad?



Artículos relacionados


No hay comentarios: