Next: Exceptions
Up: Quelques éléments de Caml
Previous: Filtrage
for i = {\em $e_1$} to {\em $e_2$} do {\em $e$} done
évalue l'expression e avec i valant successivement e1, e1 + 1, ... jusqu'à e2 compris. Si e1 est supérieur à e2, le corps de la boucle n'est jamais évalué. De même
for i = {\em $e_1$} downto {\em $e_2$} do {\em $e$} done
itère de e1 à e2 en décroissant. Dans les deux cas, l'indice de boucle est introduit par la boucle et disparaît à la fin de celle-ci. En outre, cet indice de boucle n'est pas lié à une référence mais à un entier: sa valeur ne peut être modifiée par une affectation dans le corps de la boucle. Les seuls pas d'itération possibles sont 1 et -1. Pour obtenir d'autres pas, il faut multiplier la valeur de la variable de contrôle ou employer une boucle while.
On ne peut pas affecter l'indice de boucle d'une boucle for.
while {\em $e_1$} do {\em $e$} done
évalue répétitivement l'expression e tant que la condition booléenne e1 est vraie. (Si e1 est toujours fausse, le corps de la boucle n'est jamais exécuté.)
Lorsque le corps d'une boucle while est vide, on la remplace par la valeur rien, (), qui joue alors le rôle d'une instruction vide. Par exemple,
while not button_down () do () done;
attend que le bouton de la souris soit enfoncé.
1/11/1998