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


What is the operator precedence order in Visual Basic 6.0?

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

尤其是逻辑运算符。


算术运算优先顺序

  • ^
  • -(一元否定)
  • */
  • \
  • Mod
  • +-(二进制加减)
  • &
  • 比较运算优先顺序

  • =
  • <>
  • <
  • >
  • <=
  • >=
  • LikeIs
  • 逻辑运算优先顺序

  • Not
  • And
  • Or
  • Xor
  • Eqv
  • Imp
  • 资料来源:SAMS 24小时自学Visual Basic 6-附录A:操作员优先权


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

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

    1
    If A < B And B < C Then

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

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


    使用括号

    编辑:这是我对新代码的建议!但是奥斯卡正在读别人的密码,所以一定要想办法弄清楚。我建议使用vb6手册主题运算符优先级。不幸的是,此主题似乎不在msdn联机vb6手册中,因此我将在此处粘贴逻辑运算符信息。如果安装了vb6帮助(msdn库),您的计算机上就会有它。

    逻辑运算符的计算顺序如下:

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

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

    我建议,一旦你算出进位,你就加上括号,除非有充分的理由不编辑代码。