Cómo usar bucles para repetir un grupo de comandos.
Para repetir el mismo grupo de comandos en forma sucesiva, use una de las estructuras de bucle. Hay varios tipos de bucles disponibles. Cada tipo le brinda una manera distinta de salir del bucle, con base en una prueba condicional.
Los comandos de bucle y relacionados con bucle residen en los menús Control y Transferencias del Editor de Programas.
Cuando usted inserta una de las estructuras de bucle, se inserta su plantilla en la ubicación del cursor. Entonces usted puede comenzar a ingresar los comandos que se ejecutarán dentro del bucle.
Bucles For...EndFor (Para...TerminarPara)
Un bucle For...EndFor usa un contador para controlar el número de veces que se repite el bucle. La sintaxis del comando For es:
Nota: El valor final puede ser menor que el valor inicial, siempre que el incremento sea negativo.
Para variable, iniciar, terminar [, incremento]
|
|
À |
Á |
 |
à |
|
À |
Variable usada como un contador |
|
Á |
El valor del contador usado por primera vez For se ejecuta |
|
 |
Sale del bucle cuando la variable excede este valor |
|
à |
Se agrega al contador cada vez subsiguiente que se ejecuta For (Si este valor opcional se omite, el incremento es 1.) |
Cuando se ejecuta For , el valor de la variable se compara con el valor final . Si la variable no excede el final, se ejecuta el bucle; de otra manera, el control salta al comando después de EndFor.
Nota: El comando For incrementa en forma automática la variable del contador, de manera que la función o el programa puede salir del bucle después de un cierto número de repeticiones.
Al final del bucle (EndFor), el control salta de regreso al comando For , donde la variable se incrementa y compara con el final.
Por ejemplo:
|
À |
Despliega 0, 1, 2, 3, 4 y 5. |
|
Á |
Despliega 6. Cuando la variable se incrementa a 6, el bucle no se ejecuta. |
Nota: Usted puede declarar la variable del contador como local si no necesita guardarse después de que la función o el programa se detiene.
Bucles While...EndWhile (Mientras...TerminarMientras)
Un bucle While...EndWhile repite un bloque de comandos siempre y cuando una condición específica sea verdadera. La sintaxis del comando While es:
While condición
Cuando se ejecuta While , la condición se evalúa. Si la condición es verdadera, se ejecuta el bucle; de otra manera, el control salta al comando después de EndWhile.
Nota: El comando While no cambia la condición en forma automática. Usted deberá incluir comandos que permitan que la función o el programa salga del bucle.
Al final del bucle (EndWhile), el control salta de regreso al comando While , donde la condición se vuelve a evaluar.
Para ejecutar el bucle por primera vez, la condición debe ser verdadera inicialmente.
| • | Cualquier variable referenciada en la condición debe estar configurada antes del comando While . (Usted puede crear los valores en la función o el programa, o bien puede indicarle al usuario que ingrese los valores). |
| • | El bucle debe contener comandos que cambien los valores en la condición, que a la larga causen que sea falsa. De otro modo, la condición siempre será verdadera y la función o el programa no podrá salir del bucle (llamado bucle infinito). |
Por ejemplo:
|
À |
Configura x inicialmente. |
|
Á |
Despliega 0, 1, 2, 3 y 4. |
|
 |
Incrementa x. |
|
à |
Despliega 5. Cuando x se incrementa a 5, el bucle no se ejecuta. |
Bucles Loop...EndLoop (Bucle...TerminarBucle)
Un Loop...EndLoop crea un bucle infinito, el cual se repite sin parar. El comando Loop no tiene ningún argumento.
Por lo general, usted inserta comandos en el bucle que permiten que el programa salga del bucle. Los comandos que se usan comúnmente son: If, Exit, Goto, y Lbl (etiqueta). Por ejemplo:
|
À |
Un comando If revisa la condición. |
|
Á |
Sale del bucle y salta hasta aquí cuando x se incrementa a 6. |
Nota: El comando Exit sale del bucle actual.
En este ejemplo, el comando If puede estar en cualquier parte del bucle.
|
Cuando el comando If es: |
El bucle es: |
|
En el inicio del bucle |
Se ejecuta sólo si la condición es verdadera. |
|
Al final del bucle |
Se ejecuta al menos una vez y se repite sólo si la condición es verdadera. |
El comando If también podría usar un comando Goto para transferir el control del programa a un comando de Lbl (etiqueta) especificado.
Cómo repetir un bucle de inmediato
El comando Cycle transfiere de inmediato el control del programa a la siguiente iteración de un bucle (antes de que la iteración actual esté completa). Este comando funciona con For...EndFor, While...EndWhile y Loop...EndLoop.
Bucles Lbl y Goto
A pesar de que los comandos Lbl (etiqueta) e Goto no son estrictamente comandos de bucle, se pueden usar para crear un bucle infinito. Por ejemplo:
Al igual que con Loop...EndLoop, el bucle deberá contener comandos que permitan que la función o el programa salga del bucle.