分组条件在 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
两个语句块包含相同的指令。
我正在用 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
两个语句块包含相同的指令。