Accueil :: Cours scripting :: Liste des scripts :: Forum :: A propos
Menu
.
Publicité



Cours >> Partie II - Chapitre VI

Les conditions

Attention ! Ce chapitre est très important et il est nécessaire de le comprendre avant de poursuivre les cours.
questionUne condition, cela permet de faire des conditions ? Mais dans quel but ?
La structure conditionelle (si, alors, sinon) dans tous les langages informatiques permet d'effectuer une action seulement si une condition est validée (comme son nom l’indique).
Par exemple, la fonction "appeler_flic" sera exécutée si et seulement si (tiens, ça me rappelle mes cours de maths...) une personne à côté de vous vous vole votre portable. Avec les conditions, on peut enfin écrire des scripts un peu plus compliqués et surtout réfléchis.
Dans un premier temps, nous allons étudier chaque composant d'une condition.

A. IF ... THEN
Une condition commence toujours par le mot "if" (= "si" en anglais), suivi de la condition à valider, puis du "then"(= "alors" en anglais), sur la même ligne.
Exemple :

If cheveux=blonde then

Cette ligne de code peut se traduire par : Si la variable cheveux est égale à "blonde", alors....
Entre "if" et "then", nous retrouvons donc la condition à valider. C'est le plus souvent une variable.
Je ne vais pas m'attarder sur d'autres types de conditions, je préfère garder la plus utilisée. Ainsi nous allons voir comment faire une condition...

B. La condition
La condition, avec une variable, s'écrit donc de cette manière :
nom_variable [signe opérateur] valeur.
Voila une liste des signes opérateurs :
  • Opérateurs numériques :    =     >     <     <= ou >=     <> (le dernier signifie une inégalité )
  • Opérateurs booléens :        And    Or    Xor   Not
  • Opérateur caractères :        & (concaténation)

Ainsi, nous allons voir un exemple difficile de condition :

If (attaquants > 5 AND défenseurs < 5 ) OR ( attaquants >= 10 AND défenseurs = 10 ) AND NOT ( attaquants = 15 AND défenseurs = 5 ) then

Se traduit par : "Si les attaquants (sous-entendu ici leur nombre) sont supérieurs à 5 et les défenseurs sont inférieurs à 5, OU si les attaquants sont supérieurs ou égaux à 10 et les défenseurs sont 10, ET que les attaquants ne soient PAS 15 et les défenseurs 5, alors...."
Je voudrais vous faire remarquer l'utilisation du NOT :
-> On peut l'utiliser sur une condition simple : If Not X = 3 Then... ( si x n'est pas egale a 3 ) mais aussi comme dans l'exemple pour tester de multiple condition :
-> If x>3 And Not x=5 Then... Si X=3 Et X n'est pas égale a 5. Ainsi, le NOT s'utilise seul dans une condition simple et avec AND ou OR dans une condition double.

Voilà, donc vous l'avez compris, on peut combiner plusieurs opérateurs afin de rendre un truc sympatoche :p.
NB : les parenthèses sont présentes ici pour clarifier le code. Elles ne sont donc pas obligatoire ! Mais elle permettent de garder la priorité a certain opérateur. Par exemple, le code suivant :

If (attaquants > 5 AND défenseurs < 5 ) OR ( attaquants >= 10 AND défenseurs = 10 ) then
et différent du code suivant :
If attaquants > 5 AND ( défenseurs < 5 OR ( attaquants >= 10 ) then



A. Autres conditions ?
En VB, comme dans tout langage de programmation, il est possible de faire des systèmes de conditions à plusieurs conditions imbriquées. Par exemple, avec le mot clé "Else", ou encore "Else IF", il est possible de tester plusieurs conditions à l'intérieur d'une seule. Cela peut paraître compliqué mais en fait c'est très simple :
Exemple : ( en italique, sont des commentaires, et ne sont pas inclus dans le script )

If fleur > 15 then ' Si il y a + de 15 fleurs
[fonction ramasser fleur] ' si la condition est respectée, c'est-à-dire qu'il y a plus de 15 fleurs (15 fleurs pile est exclu, sinon on aurait utilisé « supérieur ou égal » : >=), alors on ramasse des fleurs
else ' sinon
[fonction rentrer à la maison] ' il n'y a pas assez de fleurs 'on rentre chez soi car le champ n'a pas assez de fleurs et qu'on est protecteur de la nature
end if 'Fin de la condition

On a pu voir dans cet exemple qu'une condition se finit par les mots "End if". Le else permet d'utiliser la condition "SINON", c'est-à-dire quand la condition if n'est pas respectée.
La condition elseif équivaut en français à l'expression "Sinon Si..." donc par exemple on peut rajouter au code précédent cette ligne :

Elseif fleur = 15 then
[fonction ramasser juste une fleur]

Cela équivaut à refaire une condition à l'intérieur d'une autre.
attention Il est tout à fait possible d'utiliser un autre "if" dans un même if. Ainsi :

If fleur = 15 then
If pissenlit = 15 then
[fonction : afficher le message "il y a 15 fleurs dont 15 pissenlits"]
end if
end if

est entièrement fonctionnel (d’ailleurs conseillé pour faire de bons scripts). Par contre n'oubliez pas de mettre autant de end if qu'il y a de if.

infoLa différence entre un « sinon si » (elseif) et un « si » (if) tout court dans une condition déjà existante est que le else indique une condition qui n’est à remplir que lorsque la première condition n’a pas été remplie (c’est-à-dire la première condition dans laquelle ce elseif est placé), alors que le IF tout court s'exécutera si la condition première est validé.
Voilà, ce cours sur les conditions est fini.

Vous avez presque terminé la partie II ... BRAVO !
Vous êtes tout à fait capable de créer plein de nouveaux scripts maintenant. Essayez de vous familiariser avec les commandes, fonctions... avant de passer à la partie 3 qui est une sorte d'aboutissement en scripting. La prochaine partie s'annonce très difficile, alors faites attention à ne pas vous laisser aller !
Cliquez ici pour accéder au dernier TP de la partie II