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