Opérateur AndAlso OrElse


Contenu du snippet

' ces 2 opérateurs existent pour VB.NET mais pas pour VB6.
' le vrai but de ces opérateurs est de ne pas "évaluer" le 2e argument.
' avec ces fonctions le but n'est que pratique pour la syntaxe mais les paramètres
' sont forcéments évalués tous les 2 en entrant dans la fonction

Function IfAndAlso(ByVal bParam1 As Boolean, ByVal bParam2 As Boolean) As Boolean 
'VB# - si la condition1 est fausse, la deuxième n'est pas testé et _
       le code se rend directement au end if 

    If bParam1 Then 
        IfAndAlso = bParam2 
    Else 
        IfAndAlso = False 
    End If 
End Function 

Function IfOrElse(ByVal bParam1 As Boolean, ByVal bParam2 As Boolean) As Boolean 
'VB# - si la condition1 est vrai, la deuxième n'est pas testé et _
       le bloc d'instruction est executé 

    If bParam1 Then 
        IfOrElse = True 
    Else 
        IfOrElse = bParam2 
    End If 
End Function 


'   exemple d'utilisation en VB6 (à voir en mode pas à pas - F8)
Private Sub Form_Load() 
    Dim i%, j%, k%, l% 
    i = 3: j = 6: k = 2: l = 6 

    If IfAndAlso(i = 2, j = 6) Then 
        Debug.Print "condition 1 ok" 
    End If 

    If IfAndAlso(i = 3, j = 6) Then 
        Debug.Print "condition 2 ok" 
    End If 

    If IfOrElse(i = 2, j = 6) Then 
        Debug.Print "condition 3 ok" 
    End If 

    If IfOrElse(i = 3, j = 6) Then 
        Debug.Print "condition 4 ok" 
    End If 

'   condition ok si (i=3 et k=2) et (j=3 ou l=6)
    If IfAndAlso(IfAndAlso(i = 3, k = 2), IfOrElse(j = 3, l = 6)) Then 
        Debug.Print "condition 5 ok" 
    End If 

    Unload Me 
End Sub


Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.