LoriotPro Extended Edition Documentation language LUA

TDM


Instructions de sélection

While..do
repeat...until
For...do
If .. then ...elseif...else

Les structures de commande de Lua seront familiers aux programmeurs. Les expressions conditionnelles mentionnées ("exp") sur cette page sont aussi abordées au chapître Expressions. Veuillez lire préalablement la note sur les valeur nil Expressions.

While..do (tant que)

L'expression de boucle conditionnel while a la forme :

while condition do instruction end

Par exemple, une boucle simple :

i = 3
> while i>0 do
>> print(i)
>> i = i-1
>> end
3
2
1

Nous pouvons quitter la boucle de while en utilisant le mot-clé break . Notez, dans Lua que le mot-clé break doit être le dernier mot dans un bloc, c.-à-d. que le mot-clé end doit le suivre. Vous obtiendrez des erreurs de compilation si vous n'avez pas break end.

a,b = 0,1
> while true do -- infinite loop
>> io.write(b, ", ")
>> a,b = b,a+b
>> if a>500 then break end -- exit the loop if the condition is true
>> end
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, >

repeat...until (répéter tant que)

L'expression faisant une boucle conditionnel repeat a la forme : repeat instruction until condition

Par exemple, une boucle simple :

i = 3
> repeat
>> print(i)
>> i = i-1
>> until i==0
3
2
1

Comme por l'expression while nous pouvons quiiter la boucle repeat utilisant break:

> i = 1
> repeat
>> print(i)
>> i = i+1
>> if i>3 then break end
>> until cows_come_home
1
2
3

cows_come_home est une variable qui n'est pas définie. Quand nous l'accédons nous obtenons la valeur nil, qui signifie "jusqu'à faux", ou pour toujours.

For...do (pour)

l'expression de réitérer for a deux formes. Le premier est pour l'itération numérique, par exemple,

> for count = 1,3 do print(count) end -- numerical iteration
1
2
3

La seconde est pour l'itération séquentielle, par exemple imprimer le contenu d'une table :

> for key,value in {10, math.pi, "banana"} do print(key, value) end
1 10
2 3.1415926535898
3 banana

L'exemple ci-dessus est modifié avce une combinaison de syntaxe pour l'exemple suivant. for est passé à une fonction d'iteration, qui est ici la fonction pairs(), dont le but il est de fournir les valeurs de chaque itération :

> for key,value in pairs({10, math.pi, "banana"}) do print(key, value) end
1 10
2 3.1415926535898
3 banana

Il y a plus de détail sur toutes les formes de for au chapître Boucle For.

If .. then ...elseif...else

l'expression if a la forme :

if condition then instruction { elseif condition then instruction} [ else instruction ] end

Par exemple if ... then ... end

if 10>2 then print("bigger") end
bigger

if ... then ... else ... end

> if 1>10 then print("bigger") else print("smaller") end
smaller

if ... then ... elseif ... else ... end

> number = 3
> if number < 1 then
>> value = "smaller than one"
>> elseif number==1 then
>> value = "one"
>> elseif number==2 then
>> value = "two"
>> elseif number==3 then
>> value = "three"
>> else
>> value = "bigger than three"
>> end
> print(value)
three



www.loriotpro.com