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.