![]() |
Programmation en language LUA |
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.
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, >
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.
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.
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
![]() |
|