La boucle for j = 1, 5 do ... end, se lit de la façon suivante:
La boucle prendra fin, lorsque (j) aura atteint sa valeur max. (ici, j = 5)
La déclaration for possède deux formes: Une forme numérique et une forme générique
for valeur = e1, e2, e3 do ... bloc (ici on traite l'information)... end
Les trois expressions de contrôle sont évaluées une fois, avant que la boucle ne commence.
Elles doivent être des chiffres.
Vous pouvez aussi utiliser break pour sortir d'une boucle for.
IMPORTANT:
La variable de boucle 'valeur' est locale à la boucle.
Il n'est donc pas nécessaire de la déclarer local.
Vous ne pourrez plus utiliser sa valeur après le end de la boucle, un break ou un return.
Si vous avez besoin de cette valeur, il vous faudra l'affecter à une autre variable avant de sortir de la boucle.
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°1 for i = 1, 10 do Affiche(i) end
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°2 for i = 32, 0, -1 do local b = 2^i -- 2 à la puissance i Affiche(i, b) end
La boucle for générique.
La boucle for générique est utilisée pour effectuer certains travaux sur les fonctions, appelées itérateurs.
Elle a la syntaxe suivante: ( recherche de variables dans une table. )
for clef, valeur in pairs(table) do ... bloc ... end ou for index, valeur in ipairs(table) do ... bloc ... end
Mais en attendant de voir le chapitre consacré à ces itérateurs, souvenez-vous qu'un itérateur est une construction qui permet de répéter ( itérer ) une même instruction sur les différents éléments d'un ensemble d'articles.
Cela permet, par exemple de lire tous les éléments d'une table ou d'une liste, très RAPIDEMENT.
À chaque itération, la fonction est appelée à produire une nouvelle valeur.
Elle s'arrêtera lorsque cette nouvelle valeur sera égale à nil.
Ci-dessous un exemple sur, comment afficher les éléments d'une table.
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°3 local maTable = {1,25,"trois",255,"banane","fraise",12, "ceci est un exemple",34586} for k,v in pairs(maTable) do Affiche(k, v) end
Tout comme précédemment, clef ou index et valeur sont locales à la boucle et vous pouvez aussi utiliser un break ou un return pour sortir plus tôt de la boucle.
Pour plus d'information sur cette boucle et des exemples, rendez-vous au chapitre des itérateurs.