LoriotPro Extended Edition Programmation en language LUA

Table des matières

HelpLUA

Instructions de sélection

tant que ... faire ... - (while..do...)
répéter ... jusqu'à... - (repeat...until...)
pour ... faire... - (for...do...)
si ... alors ...ou alors ... sinon... - (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.

Tant que ... faire ... - (while..do...)

L'expression de boucle conditionnel while a la forme :

while condition do instruction end

Elle s'interprète de la façon suivante: Tant que la condition n'est pas satisfaite exécuter l'instruction

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, >

Répéter ... jusqu'à... - (repeat...until...)

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

repeat instruction until condition

Elle s'interprète de la façon suivante: Répéter l'instruction tant que la condition n'est pas satisfaite

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.

Pour ... faire... - (for...do...)

Elle s'interprète de la façon suivante: Pour les valeurs précisées faire l'instruction

l'expression de réitération 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.

Si ... alors ... ou si ... alors ... sinon... - (If .. then ...elseif...else)

l'expression if a la forme :

if condition_1 then instruction_1 { elseif condition_x then instruction_x} [ else instruction_2 ] end

Elle s'interprète de la façon suivante: Si la condition_1 est satisfaite exécuter l'instruction_1 ou si la condition_x est satisfaite alors exécuter l'instruction_x sinon exécuter l'instruction_2

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




LUTEUS www.loriotpro.com