Comment fonctionnent les actions sous condition ?
Un des piliers de la programmation est "l'action sous condition"
cela se présente sous la forme :
Code : Tout sélectionner
[b]SI[/b] (proposition-à-vérifier est vraie) [b]ALORS[/b] :
...
on fait ça
...
[b]SINON[/b]
...
on fait ça
...
En autoit on a :
Code : Tout sélectionner
If (proposition-à-verifier est vraie) Then
;actions à effectuer
Else
;actions à effectuer
EndIf
on veut afficher un message personnalisé en fonction du jour
on demande à l'utilisateur de rentrer le jour d'aujourd'hui
on récupère la variable $jour
Code : Tout sélectionner
$jour = InputBox("Tutorial", "Quel jour sommes nous ?")
If ($jour = "Vendredi") Then
msgbox(0,"Tutorial","c'est bientôt le weekend !")
Else
If ($jour = "Lundi") Then
msgbox(0,"Tutorial","Bonne semaine !")
Else
msgbox(0,"Tutorial","Comment se passe la semaine ?")
EndIf
EndIf
La première condition If ($jour = "Vendredi") est fausse, on saute donc les actions présentes dans le "If" et on continue dans le "Else".
On arrive alors à un deuxième si-alors, la condition ($jour = "Lundi") est vraie ! On effectue donc les actions présentes dans le If, c'est à dire afficher "Bonne semaine ! ", et on saute les actions présentes dans le Else.
Que se passe-t-il si nous rentrons Mardi ?
La première condition If ($jour = "Vendredi") est fausse, on continue dans le Else
On arrive à la seconde condition If ($jour = "Lundi") qui est fausse également, on continue donc dans le Else, et on affiche donc "Comment se passe la semaine ? " .
Que se passe-t-il si nous rentrons Vendredi ?
La première condition If ($jour = "Vendredi") est vraie !
On effectue donc les actions présentes dans le If, c'est à dire afficher "C'est bientôt le weekend !", et on saute le Else.
Quels sont les opérateurs possibles ?
Nous avons vu le = dans l'exemple précédent, mais il y'en a d'autres :
Exemple 1 :
L'utilisateur doit rentrer le bon mot de passe pour lancer le programme.
Code : Tout sélectionner
$pass = "mot de passe"
$input = InputBox("Tutorial", "Entrez le mot de passe :")
If ($input <> $pass) Then
MsgBox(0,"Tutorial", "Mauvais mot de passe !")
Else
MsgBox(0,"Tutorial", "Le mot de passe est correct !")
EndIf
Notre programme vérifie si le nombre entré par l'utilisateur est bien positif ou nul.
Code : Tout sélectionner
$nombre = InputBox("Tutorial", "Entrez un nombre :")
If ($nombre >= 0) Then
MsgBox(0,"Tutorial", "Ce nombre est positif.")
Else
MsgBox(0,"Tutorial", "ce nombre est négatif.")
EndIf
Exemple 3 :
L'utilisateur doit rentrer un bon mot de passe parmis 2 possibles.
Code : Tout sélectionner
$pass1 = "mot de passe"
$pass2 = "autoit fr"
$input = InputBox("Tutorial", "Entrez le mot de passe :")
If ( ($input <> $pass) AND ($input <> $pass1) ) Then
MsgBox(0,"Tutorial", "Mauvais mot de passe !")
Else
MsgBox(0,"Tutorial", "Le mot de passe est correct !")
EndIf
Exemple 4:
Notre programme vérifie si le nombre entré par l'utilisateur est bien compris entre 0 et 10.
Code : Tout sélectionner
$nombre = InputBox("Tutorial", "Entrez un nombre :")
If (($nombre >= 0) AND ($nombre <= 10)) Then
MsgBox(0,"Tutorial", "Ce nombre est compris entre 0 et 10.")
Else
MsgBox(0,"Tutorial", "Ce nombre n'est pas compris entre 0 et 10.")
EndIf
Si une proposition est dure à trouver, essayez la technique suivante : (lire attentivement, ce n'est pas forcement très clair à la première lecture)
Vous n'arrivez pas à trouver la proposition (1) à mettre pour que l'action s'effectue,
essayez alors de trouver la proposition (2) à mettre pour que l'action NE s'effectue PAS
Il suffira alors d'un peu d'astuce pour trouver la (1) à partir de la (2)
Essayons sur l'exemple 3 :
Dans cet exemple nous voulions afficher un message d'erreur si le mot de passe entré par l'utilisateur ne correspondait à aucun des 2 mots de passes enregistrés dans le programme, et continuer dans le cas contraire.
Or, nous n'arrivons pas à trouver la proposition correspondante.
Cherchons donc la proposition pour que le message d'erreur ne s'affiche pas.
=>Le programme ne doit pas afficher d'erreur si le mot de passe fournit par l'utilisateur correspond à l'un des 2 mots de passes enregistrés dans le programme.
On aurait donc la proposition suivante : If ( ($input = $pass1) OR ($input = $pass2) ) )(2)
Cette proposition peut être plus facile à trouver.
La proposition (1) se trouve en inversant la (2), en utilisant la correspondance suivante :
( ($input = $pass1) OR ($input = $pass2) ) (2) ==> ( ($input <> $pass) AND ($input <> $pass1) ) (1)
On retrouve bien notre proposition
On aurait donc pu écrire notre exemple 3 de la manière suivante :
Code : Tout sélectionner
$pass1 = "mot de passe"
$pass2 = "autoit fr"
$input = InputBox("Tutorial", "Entrez le mot de passe :")
If ( ($input = $pass1) OR ($input = $pass2) ) Then
MsgBox(0,"Tutorial", "Le mot de passe est correct !")
Else
MsgBox(0,"Tutorial", "Mauvais mot de passe !")
EndIf
----------------------
J'éspère que tout est suffisamment clair (surtout la fin), n'hésitez pas à faire des remarques