Vous voudrez souvent modifier le déroulement de votre script en fonction d'une condition ou d'une série de conditions. Est-ce un nombre plus grand qu'un autre ? Ou, est-ce q'une chaîne contient une certaine valeur ?
Les conditions sont évaluées comme True (Vraie) (Différente de zéro) ou False (Fausse) (Egale à zéro). Les conditions utilisent généralement des opérateurs de comparaison comme ==, <>, >=.
Les instructions de comparaison suivante sont disponibles dans AutoIt:
Ses instructions sont similaires et décident quel code exécuter en fonction de la condition déterminée. Voici un exemple d'une condition If qui fait apparaître une message box si une variable est plus grande que 10.
$var = 20
If $var > 10 Then
MsgBox(0, "Exemple", "$var est plus grand que 10 !")
Else
MsgBox(0, "Exemple", "$var est moins grand que 10 !")
EndIf
Dans l'exemple précédent, l'expression $var > 10 est évaluée à Vraie par ce que la variable est effectivement plus grande que 10. Celà permet à la condition If d'exécuter la première ligne de code et d'afficher "$var est plus grand que 10 !".
L'instruction Select est très similaire, mais
est généralement utilisée dans des cas ou vous voulez tester un grand nombre de conditions
au lieu de lire un grand nombre de conditions If/ElseIf.
Exemple :
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "Exemple",
"$var est plus grand que 1 et moins grand que 11")
Case $var > 10 AND $var <= 20
MsgBox(0, "Exemple",
"$var est plus grand que 10 et moins grand que 21")
Case $var > 20 AND $var <= 30
MsgBox(0, "Exemple",
"$var est plus grand que 20 et moins grand que 31")
Case $var > 30 AND $var <= 40
MsgBox(0, "Exemple",
"$var est plus grand que 30 et moins grand que 41")
Case $var > 40
MsgBox(0, "Exemple",
"$var est plus grand que 40")
Case Else
MsgBox(0, "Exemple",
"$var est inférieur ou égal à 0")
EndSelect
L'instruction Switch est très similaire à
l'instruction Select, mais elle est généralement utilisée des situations où la même expression
est testée selon différentes valeurs possible.
Exemple :
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "Exemple",
"$var est plus grand que 1 et moins grand que 11")
Case 11 To 20
MsgBox(0, "Exemple",
"$var est plus grand que 10 et moins grand que 21")
Case 21 To 30
MsgBox(0, "Exemple",
"$var est plus grand que 20 et moins grand que 31")
Case 31 To 40
MsgBox(0, "Exemple",
"$var est plus grand que 30 et moins grand que 41")
Case Else
MsgBox(0, "Exemple",
"$var est plus grand que 40 ou inférieur ou égal à 0")
EndSwitch