[Tutoriel] Les conditions

Moderators: Catskart, Drake, Semi-moderatos

Catskart M
Topic author, Count
Count
Avatar
Catskart M
Topic author, Count
Count
Age: 19
Reputation: 140
Posts: 258
Joined: 29 Nov 2015
Location: France

Post #1by Catskart » 30 Apr 2017, 23:17

Les conditions



Introduction :

Les conditions permettent d’effectuer certaines commandes si plusieurs éléments correspondent à la condition.
Ils sont très utilisés pour faire des systèmes et d'autres choses.


Comment ça marche ?

Les conditions commencent toujours comme ça :

Code: Select all

If CONDITION then 'Si CONDITION alors

Et finissent toujours comme ça :

Code: Select all

End if 'Fin si (Fin de condition)


Entre les deux, il y a des commandes qui seront effectuées si la condition est respectée.


Commencer une condition.

CONDITION est très souvent une comparaison d'une valeur à une autre où entre les deux il y a une formule de comparaison.

Code: Select all

If VALEUR1 COMPARAISON VALEUR2 then

VALEUR1 est obligatoirement une ou plusieurs variables, quel qu’il soit, ça peut être une variable système, une variable d'un joueur, d'un bloc, ou même une variable corde, elle peut être accompagnée d'une valeur double par contre.

VALEUR2 peut être, contrairement à VALEUR1, une valeur en double ou en corde.

COMPARAISON, lui, sera un symbole mathématique de comparaison :
- = ...égale à...
- > ...strictement plus grand que...
- < ...strictement plus petit que...
- <> ...inégale à...
- >= ou => ...égale ou plus grand que...
- <= ou =< ...égale ou plus petit que...

Quelques exemples :

Code: Select all

If val(a) = val(b) then

Si val(a) est égale à val(b)

Code: Select all

If val(a)+24 <> val(b)-val(c) then

Si val(a) plus 24 est inégale à val(b) plus val(c)

Code: Select all

If val(a)*val(d) > 30*5/val(c) then

Si val(a) multiplié par val(d) est supérieur à 30 multiplié par 5 divisé par val(c)

Code: Select all

If 30 > val(a) then

^ Faites attention à ne pas faire ça ^


Faire plusieurs conditions.

On a vu comment commencer par une condition, maintenant on va faire une condition avec plusieurs.
Les conditions seront entre if et then rassurez vous, entre ces conditions, il y aura une liaison.

Code: Select all

If val(a) = val(b) AND val(c) = val(d) then 'si val(a)=val(b) ET val(c)=val(d) alors

AND est une liaison où la condition a besoin que ces deux éléments correspondent pour exécuter les commandes concernées

Code: Select all

If val(a) = val(b) OR val(c) = val(d) then 'si val(a)=val(b) OU val(c)=val(d) alors

OR est une liaison où la condition a besoin que l'une des deux éléments corresponde pour exécuter les commandes concernées

Dans la pratique, on peut mettre autant de condition que l'on le souhaite, on peut même mettre AND et OR ensemble.

Code: Select all

If val(a) = val(b) AND val(c) = val(d) OR val(e) = val(f) AND val(g) = val(h) then

Les conditions seront respectés si val(a)=val(b) et val(c)=val(d) ou val(e)=val(f) et val(g)=val(h)


Else et Elseif.

Entre if ... then et end if, vous allez retrouvez ces deux ou l'un deux.
ELSE (Autre) exécutera les commandes concernées si la condition n'est pas respectée.
ELSEIF (Autre si) lancera une autre condition si la première n'est pas respectée, bien sûr, il peut y en avoir plusieurs.
Les conditions sont gérés de la même manière que if.

Exemple :

Code: Select all

If val(a) = val(b) then
'La condition est respectée.
Elseif val(c) = val(d) then
'La seconde condition est respectée.
Elseif val(e) = val(f) then
'La troisième condition est respectée.
Else
'Aucune des conditions ont été respectées.
End if
'Fin de condition.



/!\ Attention à l'ordre des ELSEIF !!!

Dans les conditions où il y a ELSEIF, les premières conditions sont prioritaire, par exemple :

Code: Select all

If val(a) > 3 then
'La condition est respectée.
ElseIf val(a) > 6 then
'La seconde condition est respectée.
ElseIf val(a) > 9 then
'La troisième condition est respectée.
End if
'Fin de condition.

SMBX lisant les scripts de haut en bas, il prendra compte de la première condition venu, c'est à dire If val(a) > 3 then, cette dernière étant respectée, les deux autre seront ignorées, même si val(a) est égale à 7 ou 12.
La solution est de commencer par le plus grand et terminer par le plus petit.

Code: Select all

If val(a) > 9 then
'La condition est respectée.
ElseIf val(a) > 6 then
'La seconde condition est respectée.
ElseIf val(a) > 3 then
'La troisième condition est respectée.
End if
'Fin de condition.

Return to “French - Français”