VB.NET if文のサンプル

VB.NETのif文のサンプルです。条件で処理を分岐する時に使用します。

目次

if文 if文
  構文
  ネストの構造 if文の中にif文
演算子 比較演算子と論理演算子
  論理演算子の論理積(And) AかつB
  論理演算子の論理和(Or) AまたはB
  論理演算子の排他的論理和(Xor)
  論理否定(Not) Aではない
null null(nothing)との比較

if文

if文のサンプルです。

Module Module1
    Sub Main()
        Dim a As Integer = 1

        If a = 0 Then
            Console.WriteLine("0です")

        ElseIf a = 1 Then
            Console.WriteLine("1です") '1ですが表示される 

        Else
            Console.WriteLine("それ以外です")

        End If

    End Sub
End Module

3行目は、変数の宣言と値をセットしています。
5行目からif文が始まります。
8行目のElseIf(if文)はtrueになるのでその配下の処理が実行されます。
9行目の処理が実行されif文を抜けます。

構文

If 条件式 Then
    処理
ElseIf 条件式 Then 
    処理
Else 
  処理
End If
  • 条件式がtrueの場合、配下の処理が実行され、If文の処理は終了します。
  • 条件式がfalseの場合、配下の処理は実行されず、その下(ElseIf/Else)に進みます。
  • ElseIfは、複数記述できます。省略可です。
  • elseのブロック{ }の処理は、どの条件もtrueでなかったときに実行されます。
  • elseは、1つのみ記述できます。省略可です。

ネストの構造 if文の中にif文

ネストの構造のサンプルです。

Module Module1
    Sub Main()
        Dim a As Integer = 1
        Dim b As Integer = 1

        If a = 1 Then
            If b = 1 Then
                Console.WriteLine("1です")

            End If
        End If
    End Sub
End Module

7行目は、if文の中にif文を記述しています。ネストの構造です。入れ子ともいいます。
6,7行目は、trueになり文字列が表示されます。

比較演算子と論理演算子

上記コードの=は比較演算子です。

比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。

等しくないとする場合は、<>とします。

比較演算子 説明
a = b aとbの値は等しい
a <> b aとbの値は等しくない
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい

以下は、Microsoftの比較演算子 (Visual Basic)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/comparison-operators

論理演算子の論理積(And) AかつB

If  左の条件式 And 右の条件式 Then
If  左の条件式 AndAlso 右の条件式 Then
  • 論理演算子のAndとAndAlsoは、左の式と右の式が両方ともtrueの場合、trueになります。それ以外はfalseです。
  • AndAlsoは、左の式がfalseの場合、右の式は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。パフォーマンスの向上を図れます。
Module Module1
    Sub Main()
        Dim a As Integer = 1
        Dim b As Integer = 1

        If a = 1 And b = 1 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If

        If a = 1 AndAlso b = 1 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If
    End Sub
End Module

6,12行目は、左の式と右の式が共にtrueなので、trueになります。
12行目は、左の式がfalseの場合、右の式は判定されません。

論理演算子の論理和(Or) AまたはB

If  左の条件式 Or 右の条件式 Then
If  左の条件式 OrElse 右の条件式 Then
  • 論理演算子のOrとOrElseは、左の式または右の式のどちらかがtrueの場合、trueになります。
  • OrElseは、左の式がtrueの場合、右の式は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。パフォーマンスの向上を図れます。
Module Module1
    Sub Main()
        Dim a As Integer = 1
        Dim b As Integer = 2

        If a = 2 Or b = 2 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If

        If a = 2 OrElse b = 2 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If
    End Sub
End Module

6,12行目は、左の式はfalseですが右の式がtrueなのでtrueになります。
12行目は、左の式がtrueの場合、右の式は判定されません。

論理演算子の排他的論理和(Xor)

If  左の条件式 Xor 右の条件式 Then
  • 左の式がtrueで右の式がfalseの場合、trueになります。
  • 左の式がfalseで右の式がtrueの場合、trueになります。
  • 左の式と右の式が両方ともtrueの場合、falseになります。
  • 左の式と右の式が両方ともfalseの場合、falseになります。
Module Module1
    Sub Main()
        Dim a As Integer = 2
        Dim b As Integer = 2

        If a = 2 Xor b = 3 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If

        If a = 3 Xor b = 2 Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        Else
            Console.WriteLine("Falseです")
        End If

        If a = 2 Xor b = 2 Then
            Console.WriteLine("Trueです")
        Else
            Console.WriteLine("Falseです") 'Falseですが出力される
        End If

        If a = 3 Xor b = 3 Then
            Console.WriteLine("Trueです")
        Else
            Console.WriteLine("Falseです") 'Falseですが出力される
        End If
    End Sub
End Module

6行目は、左の式がtrueで右の式がfalseなので、trueになります。
12行目は、左の式がfalseで右の式がtrueなので、trueになります。
18行目は、左の式と右の式が両方ともtrueなので、falseになります。
24行目は、左の式と右の式が両方ともfalseなので、falseになります。

論理否定(Not) Aではない

If  Not (条件式)  Then 
  • 条件式がfalseの場合にtrueになります。
  • 条件式がtrueの場合にfalseになります。
Module Module1
    Sub Main()
        Dim a As Integer = 1

        If Not (a = 2) Then
            Console.WriteLine("Trueです") 'Trueですが出力される
        End If

        If Not (a = 1) Then
            Console.WriteLine("Trueです")
        Else
            Console.WriteLine("Falseです") 'Falseですが出力される
        End If
    End Sub
End Module

5行目は値の比較でfalseになり、それを否定するのでtrueになります。
9行目は値の比較でtrueになり、それを否定するのでfalseになります。

null(nothing)との比較

null(nothing)との比較のサンプルです。

Module Module1
    Sub Main()
        Dim a As String = Nothing

        If a Is Nothing = True Then
            Console.Write("p1") 'p1が出力される
        End If

        If IsNothing(a) Then
            Console.Write("p2") 'p2が出力される
        End If

        If a IsNot Nothing = True Then
            Console.Write("p3") '出力されない
        End If

        If String.IsNullOrEmpty(a) Then
            Console.Write("p4") 'p4が出力される
        End If
    End Sub
End Module

5行目は、Is Nothingでnullを比較しています。
9行目は、IsNothingでnullを比較しています。
13行目は、Nothingの否定です。IsNotを使用します。
17行目は、IsNullOrEmptyで比較しています。nullと空文字のときにtrueになります。

以下は、Microsoftの論理演算子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/logical-and-bitwise-operators

以下は、MicrosoftのNot演算子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/not-operator

関連の記事

ASP.NET MVCのWebアプリでhello worldを表示する

△上に戻る