Une expression for est particulièrement adaptée aux situations de boucles où une répétition non conditionnelle est nécessaire. En revanche, les situations demandant l’utilisation d’une répétition conditionnelle sont souvent traitées plus efficacement avec une expression while.
Dans la variante upto, la valeur de la variable de boucle effectue une itération de l’expression start à l’expression end, en utilisant pour cela des incréments de l’expression step. Si vous n’indiquez aucune valeur pour l’expression step, l’incrément step prend la valeur 1 par défaut.
Dans la variante downto, la valeur de la variable de boucle effectue une itération de l’expression start à l’expression end, en utilisant pour cela des décréments de l’expression step. Si vous n’indiquez aucune valeur pour l’expression step, les décréments step prennent la valeur -1 par défaut.
Les itérations de la boucle sont contrôlées par la valeur de l’expression end. Avant chaque itération, l’expression end est évaluée et comparée à la variable de boucle. Si le résultat est Vrai (1), la liste d’expressions est évaluée. Après chaque évaluation, l’expression step est évaluée et ajoutée à la variable de boucle.
Avant chaque itération, l’expression end est évaluée et comparée à la variable de boucle. De plus, après chaque évaluation de la condition do, l’expression step est évaluée et ajoutée à la variable de boucle.
Une boucle for se termine lorsque l’expression start a dépassé l’expression end. L’expression start peut dépasser l’expression end vers le haut, si vous utilisez la variante upto, ou vers le bas, si vous utilisez la variante downto.
for variable = start expression
(upto | downto ) end expression
(step step expression ) do
expression list
Remarque : 
les expressions start, end et step doivent toutes être des expressions simples.
Le résultat de la liste d’expressions associée à la condition do.
Dans l’exemple suivant, les valeurs des éléments sont ajoutées à une liste déroulante à partir d’un fichier XML. La méthode addItem est utilisée pour l’ensemble des éléments XML répertoriés sous list1 :
var List = ref(xfa.record.lists.list1)
for i=0 upto List.nodes.length – 1 step 2 do
$.addItem (List.nodes.item(i).value,”")
endfor

Expressions for