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

Osk*_*kar 15 vb6

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

特别是对于逻辑运算符.

小智 16

算术运算优先顺序

  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:操作员优先顺序

  • 答案的陈述可能会有些误导.这三个类别中的顺序是倒数第一,但类别本身的顺序是倒数第一:实际上,在比较操作之前评估算术运算,这在逻辑运算之前进行评估.为了更清楚地呈现,我建议首先进行算术运算,然后进行比较运算,然后进行逻辑运算.这里也很好的参考:https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/operator-precedence (3认同)

Joe*_*orn 10

这取决于你是否在调试器中.真. 好吧,有点.

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

If A < B And B < C Then
Run Code Online (Sandbox Code Playgroud)

保证<在逻辑And比较之前评估不等式运算符.但是你不能保证首先执行哪个不等式比较.

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