[R] Select & Switch

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

[R] Select & Switch

#1

Message par eln »

Bonjour

Est-ce que une bonne âme charitable pourrait m'expliquer l'utilisation de :

Code : Tout sélectionner

Select...Case...EndSelect
et

Code : Tout sélectionner

Switch...Case...EndSwitch
Merci
Débutant, pas taper !
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

Re: Select & Switch

#2

Message par codename44 »

salut

pour le cas de Switch, tu indiques une variable ou une expression à analyser, et en fonction de la valeur que prend cette variable ou cette expression, le script va effectuer une ou plusieurs actions.

L'exemple fourni dans l'aide est assez parlant, le voilà traduit en français :

Code : Tout sélectionner

Switch @HOUR
Case 6 To 11
    $msg = "Bonjour"
Case 12 To 17
    $msg = "Bon après-midi"
Case 18 To 21
    $msg = "Bonne soirée"
Case Else
    $msg = "Que fais tu toujours debout ?"
EndSwitch
        
MsgBox(0, Default, $msg)
donc la variable ou l'expression à analyser ici est @HOUR, et en fonction de sa valeur, le script va afficher le message correspondant.

Dans le deuxième cas, Select...Case...EndSelect :

Code : Tout sélectionner

Select
    Case <expression>
        statement1
        ...
    [Case 
        statement2
        ...]
    [Case Else
        statementN
        ...]
EndSelect
au lieu de "switcher" en fonction de la valeur d'une variable, tu vas tester à chaque fois si l'expression est vraie. L'expression peut-être différente d'un cas à l'autre.

exemple

Code : Tout sélectionner

$variable = 50
$msg="test"

Select
    Case $variable = 1
        MsgBox(0, "", "le premier cas est vrai")
    Case $msg = "test"
        MsgBox(0, "", "le second cas est vrai")
    Case $variable = 50
        MsgBox(0, "", "le troisième cas est vrai")
    Case Else
        MsgBox(0, "", "Aucun des cas n'est vrai !")

EndSelect
à chaque fois donc il va tester si l'expression est vrai :
dans le premier cas $variable = 1 est faux, il continue
dans le deuxième cas $msg = "test" est vrai
on a donc une msgbox qui apparait contenant "le second cas est vrai"

une fois qu'un cas testé est vrai, il saute tous les autres cas et continue le script après le EndSelect.

En Bref :
Select remplace un embriquement de If, Else, EndIf
On aurait pu écrire notre exemple de la manière suivante :

Code : Tout sélectionner

$variable = 50
$msg="test"

If $variable = 1 Then
    MsgBox(0, "", "le premier cas est vrai")
Else
    If $msg = "test" Then
        MsgBox(0, "", "le second cas est vrai")
    Else
        If $variable = 50 Then
            MsgBox(0, "", "le troisième cas est vrai")
        Else
            MsgBox(0, "", "Aucun des cas n'est vrai !")
        EndIf
    EndIf
EndIf
voilà donc tu vois que ça allège beaucoup le code d'utiliser select à la place d'une succession de if, else.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: Select & Switch

#3

Message par eln »

Merci pour ces explications, il ne reste plus qu'a les assimiler.
Débutant, pas taper !
Répondre