题
Visual Basic 6.0 (VB6) 中的运算符优先顺序是什么?
特别是对于逻辑运算符。
解决方案
算术运算优先顺序
^
-
(一元否定)*
,/
\
Mod
+
,-
(二进制加法/减法)&
比较运算优先顺序
=
<>
<
>
<=
>=
Like
,Is
逻辑运算优先顺序
Not
And
Or
Xor
Eqv
Imp
其他提示
这取决于您是否在调试器中。 真的。 嗯,有点像。
当然,括号在前。然后算术(+、-、*、/等)。然后比较(>、<、= 等)。然后是逻辑运算符。诀窍是给定优先级内的执行顺序没有定义。给出以下表达式:
If A < B And B < C Then
您可以保证 <
不等式运算符都将在逻辑运算之前被评估 And
比较。但不能保证首先执行哪个不等式比较。
IIRC,调试器从左到右执行,但编译后的应用程序从右到左执行。 我可以把它们倒过来(已经很长时间了),但重要的是它们是不同的。实际优先级不会改变,但执行顺序可能会改变。
使用括号
编辑:这是我对新代码的建议!但奥斯卡正在阅读别人的代码,所以必须以某种方式弄清楚。我建议VB6手册主题 运算符优先级. 。不幸的是这个主题似乎不在 MSDN在线VB6手册, ,所以我将在这里粘贴逻辑运算符信息。如果您安装了 VB6 帮助(MSDN 库),您的计算机上就会有它。
逻辑运算符按以下优先顺序求值:
Not And Or Xor Eqv Imp
本主题还解释了比较和算术运算符的优先级。
我建议您一旦弄清楚优先级,就将其放入括号中,除非有充分的理由不编辑代码。
不隶属于 StackOverflow