Instructions pratiques

If ... Then ... Else, Select Case ... End Select, For ... Next,...

5 720 lectures 2 commentaires 4.3/5 (8 votes) Sébastien Sougnez

If ... Then ... Else


Nous voici dans une partie assez compliquée, essayez de lire et relire cette rubrique pour bien tout comprendre. Je vais vous expliquer ici le bloc If ... Then ... Else composée des instructions If ... Then ... Else. Ce bloc très importante se passe comme suit :
 

If Condition remplie Then
	Instruction
End If


Autrement dit, si une condition est remplie alors ( If Condition remplie Then ) le programme exécute une (ou des) instruction(s) ( Instruction ) (une instruction est un code permettant de faire une action quelconque dans votre programme, vous comprendrez mieux dans la suite du cours). If = Si, Then = Alors. Maintenant, je vais vous expliquer le bloc if ... Then ... Else. C'est presque la même chose :
 

If Condition remplie Then
	Instruction1
Else
	Instruction2
End If 


Autrement dit, si une condition est remplie ( If condition remplie Then ), le programme exécute une (ou des) instruction(s) ( Instruction1 ), par contre si elle n'est pas remplie ( Else ), le programme doit exécuter une (ou des) autre(s) instruction(s) ( Instruction2 ). If = Si, Then = Alors, Else = Sinon.
 

Exemple


Imaginez que vous avez deux nombres : 5 et 19. En espérant ne rien apprendre à personne, 5 est plus petit que 19 et 19 est plus grand que 5. Imaginez maintenant que vous vouliez faire un programme qui vous affiche un message si le premier nombre (5) est plus petit que le deuxième (19) et qui vous affiche un autre message si ce n'est pas vrai. Eh bien vous taperez ceci :
 

If 5 > 19 Then
	Message à afficher si 5 est plus grand que 19
Else
	Message à afficher si 5 est plus petit que 19
End If 


En français, cela donnerai ça :
 

Si 5 est plus grand que 19 Alors
	Message à afficher si 5 est plus grand que 19
Sinon
	Message à afficher si 5 est plus petit que 19
Fin Si 


Ce bloc peut sembler complexe car c'est le début mais à force de l'utiliser, vous le connaitrez sur le bout des doigts et l'utiliserez avec une facilité à peine croyable à ce stade de votre apprentissage. Ce bloc peut aussi contenir plusieurs conditions grâce à des opérateurs. Imaginons que vous voulez effectuer des instructions uniquement si 5 est plus petit que 19 et 19 plus grand que 5, alors vous taperez :
 

If 5 < 19 AND 19 > 5 Then
	Instructions
End If


Ici, nous voyons 2 opérateurs de comparaisons : < et >. Le mot clé AND veut dire ET, donc cela sert à combiner les 2 conditions : Si 5 est plus petit que 19 ET 19 plus grand que 5. Il y a aussi le mot-clé OR qui lui veut dire OU.

Remarque : Une condition simple peut s'inscrire sur une seule ligne :
 

If 5 < 19 Then Instructions


Cela vous évite de taper le End If.
 

Iif


Iif est une instruction qui simplifie l'utilisation de "If ... End if". Cette instruction s'écrit en une seule ligne et compare seulement des valeurs booléens (True ou False). Elle se compose comme ceci :
 

Valeur = Iif (expression a évaluer, Valeur renvoyé si elle est vraie, valeur renvoyé si elle est fausse)


Je vais vous expliquer son fonctionnement par un exemple :
 

Reponse = Iif (Valeur = "" , "Rien", "Quelque chose")


Ici, nous affecterons une valeur à Reponse (c'est le but du bloc Iif). Nous disons que si la variable Valeur est vide ( Valeur = "" ), alors Reponse vaudra "Rien" ( "Rien" ), sinon, Reponse vaudra "Quelque chose" ( "Quelque chose" ). Vous avez donc compris que les 2 derniers arguments seront les valeurs possibles de la variable se trouvant à gauche de l'égalité.
 

Select case ... End Select


Cette instruction sert surtout pour les groupes de contrôles. En fait, quand vous insérez un groupe de contrôles, la propriété index s'active, autrement dit, pour le premier contrôle du groupe, l'index vaut 0, pour le deuxième contrôle, l'index vaut 1, pour le troisième, l'index vaut 2,... Cette instruction assez importante se passe comme suit :
 

Select Case Index
	Case 0 : Instruction0
	Case 1 : Instruction1
	Case 2 : Instruction2
End Select 


Le chiffre suivant le case, est égal à l'index du contrôle, Pour encore mieux comprendre cela, allez dans la rubrique groupes de contrôles. En français, cela voudrait dire : Sélection de la propriété Index Le contrôle ayant l'Index égal à 0 aura comme instructions Instruction0 Le contrôle ayant l'Index égal à 1 aura comme instructions Instruction1 Le contrôle ayant l'Index égal à 2 aura comme instructions Instruction2 Fin de sélection Ce bloc ne sert pas que pour les groupes de contrôles, en effet, cela peut aussi fonctionner avec une variable. Imaginez par exemple que vous faites un programme qui demande à l'utilisateur d'entrer un chiffre entre 0 et 3 et que chaque nombre doit exécuter des instructions différentes. Si votre variable se nomme nbr, cela donnera ceci :
 

Select Case nbr
	Case 0 : Instructions à exécuer si nbr vaut 0
	Case 1 : Instructions à exécuer si nbr vaut 1
	Case 2 : Instructions à exécuer si nbr vaut 2
	Case 3 : Instructions à exécuer si nbr vaut 3
	Case Else : Instructions à exécuer si nbr ne vaut ni 0, ni 1, ni 2, ni 3
End Select 


Ce bloc peut aussi marcher pour des valeurs texte, mais il faut insérer les valeurs entre parenthèses. Donc si vous posez la question : "Voulez-vous vraiment quitter l'application" et que l'utilisateur doit taper Oui ou Non et que cette réponse sera stockée dans la variable reponse, les instructions seront :
 

Select Case reponse
	Case "Oui" : Quitter le programme
	Case "Non" : Ne pas quitter le programme
	Case Else : Instructions à exécuter si la réponse n'est ni Oui ni Non
End Select 


Le Case Else permet d'exécuter des instructions si la valeur est différente de toute celle proposées, cette instruction doit toujours être la dernière du bloc Select Case.
 

For ... Next


Ce bloc sert à répéter des instructions un certain nombre de fois. Ce nombre est déterminé dans nombre1 To nombre2 et la variable se trouvant devant le = prend une valeur toujours augmenter de 1 jusqu'à ce qu'elle arrive à nombre2, si vous ne comprenez pas, c'est pas grave, je vais vous l'expliquer avec un exemple. Ouvrez Visual Basic et cliquez sur l'icône , allez sur la feuille et cliquez avec le bouton gauche de votre souris et sans relâcher ce bouton déplacez votre curseur sur la feuille, quand vous estimez que le contrôle est assez grand, relâchez le bouton. Vous venez d'insérer le contrôle TextBox. Dans la fenêtre de propriétés, cliquez une fois sur le mot Text et tapez 1. Ensuite, double-cliquez à un endroit libre de la feuille et tapez :
 

For i = 1 To 2
	Text1.Text = Text1.Text + i
Next i 


Tout d'abord, i prend comme valeur 1 et effectue les instructions se trouvant dans la boucle For ... Next, autrement dit, le texte du contrôle TextBox est égal à ce même texte + i et comme le texte était égal à 1 et que i est égal à 1, 1 + 1 = 2. Ensuite, i prend comme valeur 2, et le programme effectue les instructions se trouvant dans la boucle autrement dit, le texte du contrôle TextBox est égal à ce même texte + i et comme le texte était égal à 2 et que i est égal à 2, 2 + 2 = 4. Pas compris ??? Un peu normal car c'est dur, ne vous inquiètez pas, vous comprendrez plus tard. Vous pouvez aussi insérer un pas, en effet, si vous tapez :
 

For i = 1 To 10 Step 2
	Text1.Text = Text1.Text + i
Next i 


Tout d'abord, i vaut 1 et les instructions sont exécutées, ensuite i vaut ... NON ! pas 2 mais bien 3 car nous avons inséré un pas ! Ici, le pas est 2, donc i vaut d'abord 1, ensuite, il augmente de 2, il vaudra donc 3, ensuite, il vaut 5, puis 7, puis 9 et c'est tout, il n'augmente plus puisque si il augmente, il va jusqu'à 11 et la boucle ne s'arrête qu'à 10 !
 

While ... Wend


En français, ce bloc veut dire Tant que ... . Autrement dit, cet exemple :
 

Dim A As Integer
A = 2000

While A >= 500
	A = A - 1
Wend i 


Veut dire : La variable A = 2000 Tant que la variable A est plus grande ou égale à 500 A = A - 1 Fin Tout d'abord, A = 2000 et tant que A sera plus grand ou égal à 500 A vaudra A - 1, donc si A vaut 1654, A = A - 1 donnera A = 1654 - 1 donc 1653, ainsi de suite. Si vous ne comprenez pas la ligne A = 2000, je vous explique ça dans la page suivante.
 

Do ... Loop


La boucle Do Loop permet d'effectuer des opérations sans arrêt ! Par exemple :
 

Dim a As Integer
a = 1
Do
	DoEvents
	a = a + 1
Loop i 


Augmente sans cesse a d'une unité, le DoEvents est nécessaire sinon, votre programme planterait votre ordinateur, car a ne s'arrêterait jamais de s'incrémenter bloquant ainsi votre programme. Cette instruction peut être pratique, mais elle l'est vraiment quand elle combiné à une boucle While ! Ainsi, nous pouvons effectuez sans cesse une opération tant qu'une condition est vraie.

Par exemple :
 

Dim a As Integer
a = 1000

Do While a > 1
	a = a - 1
	Form1.Caption = a
Loop i 


Veut dire que la variable a = 1000. Ensuite, tant que a > 1 ( While a > 1 ) a vaudra sa valeur -1, donc 999, 998, 997,... après chaque décrémentation, nous affichons dans la barre de titre la valeur de a ( Form1.Caption = a ). En fait, Do veut dire Faire (Exécuter), donc :
 

Do While a > 1


Voudrait dire Faire (Exécuter) tant que a > 1, et ce qui doit être fait, est ce qui suit, c'est-à-dire :
 

	a = a - 1
	Form1.Caption = a
Loop i 


Le Loop permet de fermer la boucle Do ... Loop. Voilà, le plus dur est passé ! Mais sachez qu'il est impératif de relire cette rubrique plusieurs fois pour être sûr d'avoir tout compris !

Noter

Veuillez vous identifier ou vous inscrire pour donner une note à cet article.

Commentaires / Questions

mortalle (21/01/2012 - 22:15)

exxelent

mortalle (21/01/2012 - 22:15)

exxelent

Veuillez vous identifier ou vous inscrire pour réagir à cet article.