Vbscript 使用NOT或<&燃气轮机;当比较数值时?

Vbscript 使用NOT或<&燃气轮机;当比较数值时?,vbscript,Vbscript,比较VBScript中的值时,最好使用NOT还是使用? 这是: 或者这个: If value1 <> value2 Then 在第一个示例中进行比较时,返回一个布尔值。这些值要么等于True,要么不等于False。因此,使用NOT运算符是合适的,因为您在逻辑上对布尔值求反 为了便于阅读,将比较放在括号中可能会有所帮助 后者(),因为前者的含义并不清楚,除非你对操作顺序有一个完美的理解,因为它适用于而不是和=操作符:一个很容易被忽略的微妙之处。同意,代码可读性对其他人来说非常重要,

比较VBScript中的值时,最好使用NOT还是使用?
这是:

或者这个:


If value1 <> value2 Then
在第一个示例中进行比较时,返回一个布尔值。这些值要么等于True,要么不等于False。因此,使用NOT运算符是合适的,因为您在逻辑上对布尔值求反


为了便于阅读,将比较放在括号中可能会有所帮助

后者(
),因为前者的含义并不清楚,除非你对操作顺序有一个完美的理解,因为它适用于
而不是
=
操作符:一个很容易被忽略的微妙之处。

同意,代码可读性对其他人来说非常重要,但对你自己来说更重要。想象一下,与第二个例子相比,理解第一个例子是多么困难


如果代码的读取(理解)时间超过几秒钟,也许有更好的编写方法。在本例中,第二种方法。

第二个示例将是要使用的方法,这不仅是为了可读性,而且是因为在第一个示例中,如果不是value1,它将返回一个布尔值以与value2进行比较。瞧,你需要把这个例子改写成

If NOT (value1 = value2)
这使得NOT关键字的使用毫无意义。

因为“NOT…”是两个操作,“NOT…”只是一个,使用起来更快。

下面是一个快速的实验来证明这一点:

StartTime = Timer
For x = 1 to 100000000
   If 4 <> 3 Then
   End if
Next
WScript.echo Timer-StartTime

StartTime = Timer
For x = 1 to 100000000
   If Not (4 = 3) Then
   End if
Next
WScript.echo Timer-StartTime

我不能说VBScript是如何编译它的,但它看起来像是两个操作,而不是一个。除了VBScript不编译任何东西之外,它实际上是两个操作。此外,NOT(与VBScript中的其他逻辑运算符一样)是位运算符。'不是1'=>'-2'
If NOT (value1 = value2)
StartTime = Timer
For x = 1 to 100000000
   If 4 <> 3 Then
   End if
Next
WScript.echo Timer-StartTime

StartTime = Timer
For x = 1 to 100000000
   If Not (4 = 3) Then
   End if
Next
WScript.echo Timer-StartTime
4.783203
5.552734