VB.NET If文のサンプル

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

目次

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

If文

If 条件式 Then
    処理
End If
' ElseIfとElseを書く場合
If 条件式 Then
    処理
ElseIf 条件式 Then 
    処理
Else 
  処理
End If
  • 条件が合致する場合、配下の処理が実行され、if文の処理は終了します。
  • 条件が合致することをtrue(真)ともいいます。
  • 条件が合致しない場合、配下の処理は実行されず、その下(ElseIf/Else)に進みます。
  • 条件が合致しないことをfalse(偽)ともいいます。
  • ElseIfは、複数記述できます。省略可です。
  • Elseは、1つのみ記述できます。省略可能です。elseの処理は、どの条件も合致しなかったときに実行されます。

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文を抜けます。

String型の値の比較

Public Shared Operator =(a As [String], b As [String]) As Boolean

String型の値の比較のサンプルです。

Module Module1
	Sub Main()
		Dim a As String = "test"
		Dim b As String = "test"

		If a = b Then
			Console.WriteLine("1") ' 1が出力される
		End If

	End Sub
End Module

String型の値を比較するときも比較演算子の=で可能です。
Stringクラスにメソッドがあります。
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.op_equality?view=netcore-3.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") ' 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

		If a <> 2 Then
			Console.WriteLine("Trueです") 'Trueですが出力される
		End If
	End Sub
End Module

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

null(nothing)との比較

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

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

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

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

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

        If String.IsNullOrEmpty(a) Then
            Console.Write("4") ' 4が出力される
        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でhello worldを表示する(VB.NET)

△上に戻る