VB.NET If文のサンプル

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

目次

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

If文

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

ネストのサンプル (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のWebアプリでhello worldを表示する

△上に戻る