Instructions conditionnelles - Référence du Langage

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, une chaîne contient-elle 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 des conditions données. Voici un exemple d'une condition If qui fait apparaître un message box suivant la valeur d'une variable.

#include <Constants.au3>

Local $iNumber = -20

If $iNumber > 0 Then
    MsgBox($MB_SYSTEMMODAL, "Example", "$iNumber était positif!")
ElseIf $iNumber < 0 Then
    MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était négatif!")
Else
    MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était zéro.")
EndIf


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 blocs de type If/ElseIf.  Exemple :

#include <Constants.au3>

Local $iNumber = 30

Select
    Case $iNumber > 1 And $iNumber <= 10
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 1")

    Case $iNumber > 10 And $iNumber <= 20
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 10")

    Case $iNumber > 20 And $iNumber <= 30
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 20")

    Case $iNumber > 30 And $iNumber <= 40
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 30")

    Case $iNumber > 40
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 40")
EndSelect


L'instruction Switch est très similaire à l'instruction Select, mais elle est généralement utilisée dans des situations où la même expression est testée selon différentes valeurs possibles.
Exemple :

#include <Constants.au3>

Local $iNumber = 30

Switch Int($iNumber)
    Case 1 To 10
        MsgBox($MB_SYSTEMMODAL, "Example", "$iNumber était plus grand que 1")

    Case 11 To 20
        MsgBox($MB_SYSTEMMODAL, "Example", "$iNumber était plus grand que 10")

    Case 21 To 30
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 20")

    Case 31 To 40
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 30")

    Case Else
        MsgBox($MB_SYSTEMMODAL, "Exemple", "$iNumber était plus grand que 40 ou au moins égal à 0")

EndSwitch

Dans chacune de ces structures, la première condition qui est vraie provoque l'exécution du groupe d'instructions qu'elle contrôle. Toutes les conditions qui suivent et leurs instructions associées sont ignorées.


Une instruction Ternary peut être utilisée quand il y a un choix binaire simple à faire; il évite la surcharge des structures associées aux autres instructions conditionnelles.

#include <Constants.au3>

MsgBox($MB_SYSTEMMODAL, "Result: 1=1", (1 = 1) ? "True!" : "False!")
MsgBox($MB_SYSTEMMODAL, "Result: 1=2", (1 = 2) ? "True!" : "False!")