¿Cuál es el orden de precedencia de los operadores en Visual Basic 6.0?
-
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.
Solución
Orden de precedencia de operaciones aritméticas
^
-
(negación unaria)*
,/
\
Mod
+
,-
(suma/resta binaria)&
Orden de precedencia de operación de comparación
=
<>
<
>
<=
>=
Like
,Is
Orden de precedencia de operaciones lógicas
Not
And
Or
Xor
Eqv
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.