Código fuente de ejemplo: Bucles

A veces no nos interesa que la orden se repita siempre de forma igual, sino irla modificando cada vez que se ejecute; por ejemplo, dibujar cuadrados de lado cada vez más grande. Para ello podemos crear una variable y programarla para que sufra alguna modificación en las sucesivas reiteraciones del procedimiento.

Por ejemplo, veamos como hacer cuadrados cuyo lado va aumentando en 10 unidades:
HAZ "lado :lado + 10
Es decir, súmale 10 al valor actual que tenga el lado.

PARA Cuadradoscrecientes :lado
REPITE 4 [AV :lado GD 90] ESPERA 50
HAZ "lado :lado + 10
Cuadradoscrecientes :lado
FIN

Al llamar al programa habrá que asignar un valor al lado del primer cuadrado, por ejemplo 5 unidades.

Para evitar que siga haciendo cuadrados hasta el infinito, podemos añadir la condición de que en el momento en que el lado supere un cierto valor el programa llame a la primitiva ALTO, es decir, se detenga. Naturalmente habrá que poner esta condición antes de dar la orden de repetir el programa.

PARA Cuadradoscrecientes :lado
REPITE 4 [AV :lado GD 90] ESPERA 50
HAZ "lado :lado + 10;
SI :lado >150 [ALTO]
Cuadradoscrecientes :lado
FIN