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

时间:2008-09-10 20:14:08

标签: vb6

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

特别是对于逻辑运算符。

3 个答案:

答案 0 :(得分:16)

算术运算优先顺序

  1. ^
  2. -(一元否定)
  3. */
  4. \
  5. Mod
  6. +-(二进制加法/减法)
  7. &
  8. 比较操作优先顺序

    1. =
    2. <>
    3. <
    4. >
    5. <=
    6. >=
    7. LikeIs
    8. 逻辑操作优先顺序

      1. Not
      2. And
      3. Or
      4. Xor
      5. Eqv
      6. Imp
      7. 来源: Sams Teach Yourself Visual Basic 6 in 24 Hours — Appendix A: Operator Precedence

答案 1 :(得分:10)

这取决于您是否在调试器中。 真的。好吧,等等。

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

If A < B And B < C Then

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

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

答案 2 :(得分:3)

使用括号


编辑:这是我对新代码的建议!但奥斯卡正在阅读别人的代码,所以必须以某种方式解决。我建议VB6手册主题运算符优先。不幸的是,这个主题似乎不在MSDN online VB6 manual中,因此我将在此处粘贴逻辑运算符信息。如果您安装了VB6帮助(MSDN库),您将在计算机上安装它。

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

Not   
And   
Or   
Xor   
Eqv   
Imp   

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

我建议你一旦弄清楚优先权,就会加上括号,除非有充分的理由不编辑代码。