Vb6 和运算符是否始终在或之前进行评估

Vb6 和运算符是否始终在或之前进行评估,vb6,operators,Vb6,Operators,今天早上我在一些VB6代码中遇到了一个错误,它的计算结果不正确。代码的格式如下: <Boolean Value 1> Or <Boolean Value 2> And <Boolean Value 3> 或 修复方法(在本例中)是将括号放在以下位置: (<Boolean Value 1> Or <Boolean Value 2>) And <Boolean Value 3> (或)和 因为和首先被错误地评估了,所以我

今天早上我在一些VB6代码中遇到了一个错误,它的计算结果不正确。代码的格式如下:

<Boolean Value 1> Or <Boolean Value 2> And <Boolean Value 3>
修复方法(在本例中)是将括号放在以下位置:

(<Boolean Value 1> Or <Boolean Value 2>) And <Boolean Value 3>
(或)和
因为
首先被错误地评估了,所以我的问题是-总是这样吗

我假设像+-*这样的东西是使用规则计算的,但是这些操作符
和/或不是XOr Is
等呢

按出现顺序排列的优先顺序:

Negation (Not)

Conjunction (And, AndAlso)

Inclusive disjunction (Or, OrElse)

Exclusive disjunction (Xor)

按出现顺序排列的优先顺序:

Negation (Not)

Conjunction (And, AndAlso)

Inclusive disjunction (Or, OrElse)

Exclusive disjunction (Xor)

是的,与大多数编程语言一样,
的绑定强度比
强,因此在这种情况下括号是必要的


有趣的是VB6没有短路操作,这意味着如果你有
if-isNumeric(var)和myFunc(var),那么…
myFunc甚至会在你的var不是数值的情况下执行!这会影响性能和正确性

是的,与大多数编程语言一样,
的绑定性比
强,因此在这种情况下必须使用括号


有趣的是VB6没有短路操作,这意味着如果你有
if-isNumeric(var)和myFunc(var),那么…
myFunc甚至会在你的var不是数值的情况下执行!这会影响性能和正确性

请看前面的答案。。。[VB6中的运算符优先顺序是什么?][1][1]:请参见前面的答案。。。[VB6中的运算符优先顺序是什么?][1][1]:请注意,短路运算符
AndAlso
OrElse
在VB6中尚不可用。@Stacktracer-在VB6中尚不可用-他们计划何时引入它们?我一直在等待Visual Studio 6 Service Pack 7,因为它很可能是在VB(经典)7.0中出现的,因为“VB7”已经被VB.Net偷走了,所以它必须被称为其他东西。也许一旦Windows团队将.Net版的强尼完全赶出微软(还记得Longhorn惨败和Win8即将发生的变化吗)?让我们说“不要屏住呼吸”。请注意,短路运算符
AndAlso
OrElse
在VB6中尚不可用。@Stacktracer-在VB6中尚不可用-他们计划何时引入它们?我一直在等待Visual Studio 6 Service Pack 7,因为它很可能是在VB(经典)7.0中出现的,因为“VB7”已经被VB.Net偷走了,所以它必须被称为其他东西。也许一旦Windows团队将.Net版的强尼完全赶出微软(还记得Longhorn惨败和Win8即将发生的变化吗)?让我们说“不要屏住呼吸”。是的,有点像“布尔乘法”和/或“布尔加法”,所以它有意义。是的,有点像“布尔乘法”和/或“布尔加法”,所以它有意义。