Est-il préférable d'utiliser NOT ou d'utiliser <> lors de la comparaison des valeurs dans VBScript?
est-ce:
If NOT value1 = value2 Then
ou ca:
If value1 <> value2 Then
mieux?
EDIT: Voici mon contre-argument.
Lorsque vous cherchez à annuler logiquement une valeur booléenne, vous utiliserez l'opérateur NOT, donc c'est correct:
If NOT boolValue1 Then
et lorsqu'une comparaison est effectuée dans le cas du premier exemple, une valeur booléenne est renvoyée. soit les valeurs sont égales à Vrai, soit elles ne sont pas Faux. Il serait donc approprié d'utiliser l'opérateur NOT, car vous annulez logiquement une valeur booléenne.
Pour la lisibilité, placer la comparaison entre parenthèses serait probablement utile.
Le dernier (<>
), car le sens de l'ancien n'est pas clair à moins que vous ne compreniez parfaitement l'ordre des opérations tel qu'il s'applique aux Not
et =
opérateurs: une subtilité facile à rater.
Parce que "not ... =" est deux opérations et "<>" n'en est qu'une, il est plus rapide d'utiliser "<>".
Voici une rapide expérience pour le prouver:
StartTime = Timer
For x = 1 to 100000000
If 4 <> 3 Then
End if
Next
WScript.echo Timer-StartTime
StartTime = Timer
For x = 1 to 100000000
If Not (4 = 3) Then
End if
Next
WScript.echo Timer-StartTime
Les résultats que j'obtiens sur ma machine:
4.783203
5.552734
D'accord, la lisibilité du code est très importante pour les autres, mais surtout pour vous-même. Imaginez à quel point il serait difficile de comprendre le premier exemple par rapport au second.
Si le code met plus de quelques secondes à lire (comprendre), il y a peut-être une meilleure façon de l'écrire. Dans ce cas, la deuxième façon.
Le deuxième exemple serait celui à utiliser, non seulement pour la lisibilité, mais en raison du fait que dans le premier exemple, If NOT value1 retournerait une valeur booléenne à comparer avec value2. IOW, vous devez réécrire cet exemple en
If NOT (value1 = value2)
ce qui rend inutile l'utilisation du mot clé NOT.