分组条件在 VBScript 中是否正常工作?

Do grouped conditionals work properly in VBScript?

我正在用 VBScript 编写一些相当复杂的代码。我一直都知道 VBScript 只有按位运算,没有逻辑 AND 和 OR 运算符,所以惰性逻辑不起作用。 This MS Blog article explains it.

我想知道的是(文章没有详细说明)是否可以使用分组条件语句而不必求助于嵌套 IF 语句。

像这样:

If A = True OR (B = True AND C = True) Then    '<-- will this statement evaluate correctly?
    ....
End If

不必这样做:

If A = True Then
    If B = True AND C = True Then
        ...
    End If
End If

这行得通吗?

此语句的其他形式是否也有效(即 If A OR B (NOT C) 等)?

条件

If A = True Or (B = True And C = True) Then
  ...
End If

将按您的预期工作。没有比较操作的条件也是如此:

If A Or (B And C) Then
  ...
End If

顺便说一句,请注意,上面的条件与下面的嵌套条件的含义不同。

If A = True Then
  If B = True And C = True Then
    ...
  End If
End If

仅当 两个 条件都为真时,才会执行此代码片段中的语句块,如果只有其中一个为真,则不会执行。等同于 A Or (B And C) 的(相当笨拙的)可能看起来有点像这样:

If A = True Then
  ...
ElseIf B = True And C = True Then
  ...
End If

两个语句块包含相同的指令。