La boucle while exécute les instructions, tant que la condition est vérifiée.
while ... condition ... do -- ... bloc: instructions... end
LUA teste en premier la condition...
Si la condition est true, LUA exécute de nouveau la boucle.
Si la condition est false la boucle prend fin.
Un break peut être utilisé pour sortir plus tôt de la boucle.
ATTENTION à bien coder cette boucle, car on a vite fait de se retrouver dans une boucle qui ne se termine jamais...surtout avec une condition booléenne.
-- Pour exécuter cet exemple, rajouter le code wxWidgets N°1 local i = 0 while i <= 20 do -- tant que i reste inférieur ou égal à 20 ... Affiche(i) -- on fait ce que l'on a à faire -- ici, on appelle la fonction Affiche() et on lui passe le paramètre i) i = i + 1 -- on incrémente i -- et on reboucle tant que i reste < ou = à 20 end
Dans cet exemple, dès que la variable i est supérieure à 20 ( i = 21 ) la condition devient false et la boucle s'arrête.
function Recherche() local i = 1 while true do local name = auraFunction(unit, i) -- cette fonction retourne un nom if ( not name ) then return false -- s'il n'y en a pas on sort et -- on retourne false end if ( auraName == name ) then return true -- si le nom est celui que l'on cherche -- on sort et on retourne true end i = i + 1 -- et on incrémente i tant qu'on a pas trouvé -- ce que l'on cherche end end
Dans cet exemple, la condition reste true en permanence, mais l'on sort dès que l'on a trouvé ce que l'on cherche.
Il s'agit d'une fonction extraite d'un programme, que vous ne pouvez pas tester ici. A vous d'imaginer quelque chose de similaire... histoire de voir si vous avez bien assimilé ce qui précède.