Lua: Le tutoriel  wxWidgets
Lua
Les structures de contrôle: while ... do ... end

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.

Un premier exemple de boucle arithmétique.
-- 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.


Un deuxième exemple de boucle avec une condition booléenne.
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.


logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 20 novembre 2012.
Valid XHTML 1.0 Transitional

wxlualogo
Flèche haut
Flèche gauche
Flèche haut
Flèche droite