Programmation Visual Basic .NET/Conditions

Un livre de Wikilivres.

Conditions[modifier | modifier le wikicode]

Liste des conditions :

  1. If/Else/Endif
  2. If/ElseIf/Else/Endif
  3. Select Case/End Select

If...Else...EndIf[modifier | modifier le wikicode]

Soit les variables et les assertions suivantes :

    Dim Entier1 as Integer = 4
    Dim Entier2 as Integer = 7

    MsgBox(Entier1 = 4) ' affiche True
    MsgBox(Entier1 = 5) ' False
    MsgBox(Entier1 > 7) ' True
    MsgBox(Entier1 < Entier2) ' True

    If Entier1 = 4 Then MsgBox("Entier1 n'a pas changé")

S'il y a plusieurs instructions derrière le Then, il est obligatoire de leur allouer une ligne chacune, puis de terminer la condition par un End if :

    If Entier1 = 4 Then
       Entier1 = Entier1 + 3    ' Entier1 = 7
       Entier2 = Entier2 + 1    ' Entier2 = 8
    End if

Si des instructions doivent s'appliquer quand la condition n'est pas vérifiée, utiliser Else :

   IF Entier1 = 4 Then 
       (exécute le code True) 
   Else 
       (exécute le code False) 
   End if

   If Not Entier1 = 4 Then          ' avec une clause "not"
       (exécute le code True)       ' si Entiers1 est différent de 4
   Else 
       (exécute le code False)      ' si Entiers1 = 4
   End if

Attention à bien prioriser avec des parenthèses :

   If Not Entier1 = 3 Or Entier2 = 7 Then MsgBox("Entier1 est différent de 3 et Entier2 = 7")
   If Not (Entier1 = 3 Or Entier2 = 7) Then MsgBox("Entier1 est différent de 3 et Entier2 différent de 7")

If...ElseIf...Else...EndIf[modifier | modifier le wikicode]

If/ElseIf permet de tester plusieurs conditions dans l'ordre séquentiel programmé. Exemple :

 Dim x As Integer
 Dim y As Integer
 '...
 If x = y Then
   MsgBox("x = y")
 ElseIf x < y Then
   MsgBox("x < y")
 Else
   MsgBox("x > y")
 End If

Select Case[modifier | modifier le wikicode]

Ce procédé permet de raccourcir la syntaxe de longues chaines If/ElseIf/.../ElseIf/Else.

Il décrit en effet les différentes valeurs d'une variable (nombres ou chaines de caractères) :

 Dim CPU as Integer
 Select Case CPU
     Case 0
         MsgBox "Aucun processeur"
     Case 1
         MsgBox "Un processeur"
     Case 2
         MsgBox "Deux processeurs"
     Case 4
         MsgBox "Quatre processeurs"
     Case 3, 5 To 8
         MsgBox "3, 5, 6, 7, ou 8 processeurs"
     Case Else
         MsgBox "> 8 processeurs"
 End Select

Opérateurs booléens[modifier | modifier le wikicode]

Les opérateurs booléens en Visual Basic .NET peuvent être testés tels quels, sans fonction isTrue() que l'on peut trouver dans d'autres langages. Par exemple :

  functionA() and functionB()

Dans cette instruction le circuit court fait en sorte que la seconde fonction ne s'exécute que si la première renvoie True.

L'ordre des conditions est donc important pour optimiser la vitesse du programme.

Outre les opérateurs compatibles avec les précédentes version de Visual Basic, il existe ceux-ci :

  Not
  And
  Or
  Xor

Plus deux utilisant les circuits courts d'évaluation :

  AndAlso
  OrElse