Java と VB .NET の比較演算子めも

VB .NET で条件文を書くとき、たまにこんなのを書いた。


Dim val As String = Nothing
If IsNothing(val) Or 0 = val.Length Then
MsgBox("エラー")
End If

すると System.NullReferenceException が発生する。最初の条件が False を返しても必ず全条件をチェックする仕様なのか、と考えて、仕方なく IF 文を分けたりした。

でも VB .NET には AndAlso, OrElse という演算子もあって、そちらを使うと &&, || な動作になってくれるらしい。ふと気が向いて職場で貸し出された Tips 本を読んでいて初めて知った。こっちの方が使いやすそう。

ちなみに & や | は全条件をチェックする、つまり And や Or と同じ動作をする。 & や | はわたしにとって、比較もそういえばできるビット演算子だよね程度の存在だったので再認識できてうれしい。

……そうか。ビット演算子なのに両辺の式を評価しないわけないよな。しないと困るよな。当たり前の話か。