web-dev-qa-db-ja.com

値を比較するときにNOTまたは<>を使用する方が良いですか?

VBScriptで値を比較するときにNOTを使用するか、<>を使用する方が良いでしょうか?
これは:


If NOT value1 = value2 Then

またはこれ:


If value1 <> value2 Then

いい?

編集:ここに私の反論があります。
ブール値を論理的に否定する場合は、NOT演算子を使用するため、これは正しいです。


 If NOT boolValue1 Then

最初の例の場合に比較が行われると、ブール値が返されます。値がTrueに等しいか、Falseではありません。したがって、ブール値を論理的に否定しているため、NOT演算子を使用することが適切です。

読みやすくするために、比較を括弧で囲んでおくとおそらく役立つでしょう。

30
Tester101

後者(<>)。前者の意味は、Notおよび=演算子に適用される操作の順序を完全に理解しない限り明確ではないためです。見落としやすい微妙さ。

42
Joel Coehoorn

「not ... = "は2つの操作であり、" <> "は1つだけであるため、" <> "を使用する方が高速です。

これを証明する簡単な実験を次に示します。

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
1

コードの可読性は他の人にとって非常に重要ですが、より重要なのは自分自身です。最初の例を2番目と比較して理解するのがどれほど難しいか想像してみてください。

コードの読み取り(理解)に数秒以上かかる場合は、おそらくより良い書き込み方法があります。この場合、2番目の方法。

1
user38735

2番目の例は、読みやすさだけでなく、最初の例ではIf NOT value1がvalue2と比較されるブール値を返すという事実のために、対応するものです。 IOW、その例を次のように書き換える必要があります

If NOT (value1 = value2)

nOTキーワードを使用しても意味がありません。

0
hmcclungiii