16

Visual Basic 6.0 (VB6) 中的运算符优先顺序是什么?

特别是对于逻辑运算符。

4

3 回答 3

17

算术运算优先顺序

  1. ^
  2. -(一元否定)
  3. *,/
  4. \
  5. Mod
  6. +, -(二进制加法/减法)
  7. &

比较操作优先顺序

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

逻辑运算优先顺序

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

资料来源: Sams 在 24 小时内自学 Visual Basic 6 — 附录 A:运算符优先级

于 2008-09-10T20:16:37.463 回答
10

这取决于您是否在调试器中。真的。 嗯,有点。

当然,括号是第一位的。然后算术(+、-、*、/ 等)。然后比较(>、<、= 等)。然后是逻辑运算符。诀窍是未定义给定优先级内的执行顺序。给定以下表达式:

If A < B And B < C Then

您可以保证<不等式运算符都将在逻辑And比较之前进行评估。但是您不能保证首先执行哪个不等式比较。

IIRC,调试器从左到右执行,但编译后的应用程序从右到左执行。 我可以让它们倒退(已经很长时间了),但重要的是它们是不同的。实际优先级不会改变,但执行顺序可能会改变。

于 2008-09-10T20:36:35.060 回答
3

使用括号


编辑:这是我对新代码的建议!但是奥斯卡正在阅读别人的代码,所以必须以某种方式弄清楚。我建议 VBA 手册主题Operator Precedence。VBA 与 VB6 有 99% 的等效性 - 表达式求值是 100% 等效的。我在这里粘贴了逻辑运算符信息。

逻辑运算符按以下优先顺序进行评估:

不是   
和   
或者   
异或   
方程   
小鬼   

该主题还解释了比较和算术运算符的优先级。

我建议一旦你弄清楚了优先级,你就用括号括起来,除非有充分的理由不编辑代码。

于 2009-03-05T15:58:48.787 回答