BUCLES II
Repasemos un poco el Bucle FOR (CICLO PARA) para poder luego avanzar al bucle WHILE (CICLO MIENTRAS)
FOR … IN
Esta función nos proporciona datos "uno por uno", el órden de aparición, de una lista de datos y el ciclo termina cuando no hay más elementos en la lista.
Empieza por el primero, y termina por el último.
FOR :x IN [10, 50, 80, 120, 180] [
FORWARD :x
LEFT 90
]
Muestra datos de la lista [10, 50, 80, 120, 180] uno a la vez a la variable :x y ejecutará los comandos a su vez.
El primer comando será: ADELANTE 10 IZQUIERDA 90.
El siguiente será: ADELANTE 50 IZQUIERDA 90
y así sucesivamente hasta que el bucle finalice con:
ADELANTE 180 IZQUIERDA 90.
También las cadenas de texto son en este caso una lista, por lo que es posible obtener datos de una cadena alfanumérica (Letras, signos y números).
FOR x IN "Este es un texto" [
LABEL x
FORWARD 10
]
Mostrará el texto "letra por letra" en la pantalla.
Para hacer un ciclo que vaya de 0 a 10, ingrese:
FOR :xNumero IN RANGE 10 [y aquí la acción a realizar, las órdenes]
COMANDO: REPCOUNT
Utilizaremos ahora el comando REPCOUNT (para contar las repeticiones que hace el ciclo.)
En el bubcle PARA que vimos anteriormente hicimos lo siguiente:
Ejemplo de FOR IN:
FOR :xNumero IN [10, 50, 80, 120, 180] [
FORWARD :xNumero
LEFT 90
]
Podráis decidir usar el valor del "contador" en lugar de los valores de la lista.
Y entonces, luego debes reemplazar :xNumero , por: REPCOUNT.
REPCOUNT devuelve el valor del contador de elementos y la función se repetirá tantas veces como elementos haya en la lista.
REPCOUNT se puede utilizar en los bucles REPEAT, FOR y WHILE. Suele ser muy útil en varios casos que iremos viendo.
Bucle WHILE + condición lógica. con REPCOUNT
la estrctura es simple El comando WHILE, luego REPCOUNT y la condición
Finalmete [entre corchetes] el código a ejecutar cuando se cumple la condición.
WHILE REPCOUNT <= 10 [
FORWARD 45
RIGHT 36
]
El bucle se ejecutará siempre que REPCOUNT sea menor o igual a 10.
REPCOUNT cuenta DESDE "1" EN ADELANTE , no desde" 0" como es habitual en otros lenguajes de programación.
El bucle se ejecutará 10 veces y generará un polígono de 10 lados.
También existen los siguientes comandos para ciclos:
-BREAK
-CONTINUE
-STOP
-PAUSE
(Los iremos viendo poco a poco para no confundirnos ni saturarnos.)