Visual Basic 6.0 (VB6) 中的运算符优先顺序是什么?
特别是对于逻辑运算符。
^
-
(一元否定)*
,/
\
Mod
+
, -
(二进制加法/减法)&
=
<>
<
>
<=
>=
Like
,Is
Not
And
Or
Xor
Eqv
Imp
这取决于您是否在调试器中。真的。 嗯,有点。
当然,括号是第一位的。然后算术(+、-、*、/ 等)。然后比较(>、<、= 等)。然后是逻辑运算符。诀窍是未定义给定优先级内的执行顺序。给定以下表达式:
If A < B And B < C Then
您可以保证<
不等式运算符都将在逻辑And
比较之前进行评估。但是您不能保证首先执行哪个不等式比较。
IIRC,调试器从左到右执行,但编译后的应用程序从右到左执行。 我可以让它们倒退(已经很长时间了),但重要的是它们是不同的。实际优先级不会改变,但执行顺序可能会改变。
编辑:这是我对新代码的建议!但是奥斯卡正在阅读别人的代码,所以必须以某种方式弄清楚。我建议 VBA 手册主题Operator Precedence。VBA 与 VB6 有 99% 的等效性 - 表达式求值是 100% 等效的。我在这里粘贴了逻辑运算符信息。
逻辑运算符按以下优先顺序进行评估:
不是 和 或者 异或 方程 小鬼
该主题还解释了比较和算术运算符的优先级。
我建议一旦你弄清楚了优先级,你就用括号括起来,除非有充分的理由不编辑代码。