我正在VBScript中写一些相当复杂的代码。 我一直知道VBScript只有位运算符,而不是逻辑AND和OR运算符,因此惰性逻辑不起作用。 这个MS博客文章解释它 。
我想知道的是(这篇文章没有说明)是,如果你可以使用分组的条件语句,而不必求助于嵌套的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
这会工作吗?
这种说法的其他forms是否也适用(即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
两个语句块都包含相同的指令。