Quel est l’ordre de priorité des opérateurs dans Visual Basic 6.0 ?

StackOverflow https://stackoverflow.com/questions/55206

  •  09-06-2019
  •  | 
  •  

Question

Quel est l'ordre de priorité des opérateurs dans Visual Basic 6.0 (VB6) ?

En particulier, pour les opérateurs logiques.

Était-ce utile?

La solution

Ordre de priorité des opérations arithmétiques

  1. ^
  2. - (négation unaire)
  3. *, /
  4. \
  5. Mod
  6. +, - (addition/soustraction binaire)
  7. &

Ordre de priorité des opérations de comparaison

  1. =
  2. <>
  3. <
  4. >
  5. <=
  6. >=
  7. Like, Is

Ordre de priorité des opérations logiques

  1. Not
  2. And
  3. Or
  4. Xor
  5. Eqv
  6. Imp

Source: Sams Apprenez-vous Visual Basic 6 en 24 heures - Annexe A :Priorité des opérateurs

Autres conseils

Cela dépend si vous êtes ou non dans le débogueur. Vraiment. Eh bien, en quelque sorte.

Les parenthèses viennent en premier, bien sûr.Puis arithmétique (+,-,*,/, etc).Puis des comparaisons (>, <, =, etc).Puis les opérateurs logiques.Le problème est que l’ordre d’exécution au sein d’un niveau de priorité donné n’est pas défini.Étant donné l'expression suivante :

If A < B And B < C Then

vous avez la garantie du < les opérateurs d’inégalité seront tous deux évalués avant l’étape logique And comparaison.Mais vous n’êtes pas assuré de savoir quelle comparaison d’inégalités sera exécutée en premier.

IIRC, le débogueur s'exécute de gauche à droite, mais l'application compilée s'exécute de droite à gauche. Je pourrais les avoir à l'envers (ça fait longtemps), mais l'important c'est qu'ils sont différents.La priorité réelle ne change pas, mais l'ordre d'exécution pourrait le faire.

Utiliser des parenthèses


MODIFIER:C'est mon conseil pour le nouveau code !Mais Oscar lit le code de quelqu'un d'autre et doit donc le comprendre d'une manière ou d'une autre.Je suggère le sujet du manuel VB6 Priorité des opérateurs.Malheureusement, ce sujet ne semble pas être dans le Manuel MSDN en ligne VB6, je vais donc coller ici les informations sur l'opérateur logique.Si vous avez installé l'aide VB6 (la bibliothèque MSDN), vous l'aurez sur votre machine.

Les opérateurs logiques sont évalués dans l'ordre de priorité suivant :

Not   
And   
Or   
Xor   
Eqv   
Imp   

La rubrique explique également la priorité des opérateurs de comparaison et arithmétiques.

Je suggérerais qu'une fois que vous avez compris la priorité, vous mettez entre parenthèses, sauf s'il y a une bonne raison de ne pas modifier le code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top