MIENTRASlista_de_prueba
lista_de_instrucciones
WHILElista_de_prueba
lista_de_instrucciones
Ejecuta repetidamente la lista_de_instrucciones
mientras que lista_de_prueba
evalúa a CIERTO.
MIENTRAS evalúa lista_de_prueba
antes de evaluar lista_de_instrucciones
, así que es posible que no se ejecuta lista_de_instrucciones
ni una vez.
El argumento lista_de_prueba
debe contener una expresión que evalúa a CIERTO o FALSO.
El hecho de que el argumento lista_de_prueba
es una lista pueda engañar porque debería contener exactamente una expresión.
Sólo es una lista para aplazar cuando se lo evalúa.
Por ser una lista, se necesita evaluarlo explícitamente con EJECUTA.
Esto permite que MIENTRAS reevalúa lista_de_prueba
antes de cada iteración, en lugar de sólo una vez.
HAZ "i 0
MIENTRAS [:i < 3] [HAZ "i :i+1 ESCRIBE :i]
1
2
3