¿Cuál es el orden de precedencia de los operadores en Visual Basic 6.0?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Cuál es el orden de precedencia de los operadores en Visual Basic 6.0 (VB6)?

En particular, para los operadores lógicos.

¿Fue útil?

Solución

Orden de precedencia de operaciones aritméticas

  1. ^
  2. - (negación unaria)
  3. *, /
  4. \
  5. Mod
  6. +, - (suma/resta binaria)
  7. &

Orden de precedencia de operación de comparación

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

Orden de precedencia de operaciones lógicas

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

Fuente: Sams Aprenda usted mismo Visual Basic 6 en 24 horas - Apéndice A:Precedencia del operador

Otros consejos

Depende de si estás o no en el depurador. En realidad. Especie de.

Los paréntesis son lo primero, por supuesto.Luego aritmética (+,-,*,/, etc.).Luego comparaciones (>, <, =, etc.).Luego los operadores lógicos.El truco es que el orden de ejecución dentro de un nivel de prioridad determinado no está definido.Dada la siguiente expresión:

If A < B And B < C Then

tienes garantizado el < Los operadores de desigualdad serán evaluados antes de la lógica. And comparación.Pero no se garantiza qué comparación de desigualdad se ejecutará primero.

IIRC, el depurador se ejecuta de izquierda a derecha, pero la aplicación compilada se ejecuta de derecha a izquierda. Podría tenerlos al revés (ha pasado mucho tiempo), pero lo importante es que son diferentes.La precedencia real no cambia, pero el orden de ejecución sí podría cambiar.

Usar paréntesis


EDITAR:¡Ese es mi consejo para el código nuevo!Pero Oscar está leyendo el código de otra persona, así que debe descubrirlo de alguna manera.Sugiero el tema del manual de VB6. Precedencia del operador.Desafortunadamente este tema no parece estar en el Manual de MSDN en línea VB6, así que pegaré aquí la información del operador lógico.Si instaló la ayuda de VB6 (la biblioteca MSDN), la tendrá en su máquina.

Los operadores lógicos se evalúan en el siguiente orden de prioridad:

Not   
And   
Or   
Xor   
Eqv   
Imp   

El tema también explica la precedencia de los operadores aritméticos y de comparación.

Sugeriría que una vez que haya descubierto la precedencia, lo ponga entre paréntesis a menos que haya alguna buena razón para no editar el código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top