【VB.Net】If文(条件分岐)について | i

【VB.Net】If文(条件分岐)について

今回はIf文(条件分岐)について紹介します。

まず、If文の構文は以下となっています。
If 条件式 Then
 条件式が成立する(True)ときに実行する命令
End If
   
If 条件式 Then
 条件式が成立する(True)ときに実行する命令
Else
 条件式が成立しない(False)のときに実行する命令
End If
   
If 条件式① Then
 条件式①が成立する(True)ときに実行する命令
ElseIf 条件式② Then
 条件式②が成立する(True)ときに実行する命令
ElseIf 条件式③ Then
 ・・・
End If

何種類もありますが、プログラミングに触れていればそのうち全部同じに見えてきます。
基本的に「もし条件式が成立する(True)とき、この命令をしてください」というスタンスです。

具体的な例文をみたほうがわかりやすいと思いますので、構文を載せますね。
 
Dim a As Integer
Dim b As Integer
a = -3
b = 7

If a > b Then
 命令①
Else
 命令②
End If

上記の場合、実行されるのは、命令①、命令②どちらになるでしょうか?
If文の条件式には「aはbより大きい(-3は7より大きい)」とかいてあります。
大小比較をしているようですが、これは成立しませんよね。なのでこの条件式はTrueにはなりません。
つまりFalseということです。
そして、このIf文には「Else上で出てきた条件式以外はこれを実行してください)」があります。

なので、実際実行されるのは「命令②」になるわけです。

では、次にIf文を少し長くしてみます。
 
If a > b Then
 命令①
ElseIf a > 0 Then
 命令②
End If

上記の場合、実行されるのは、命令①、命令②どちらになるでしょうか?
まず、先ほどa>bは成立しないと説明したので、命令①は実行されません。
次に、 「a > 0」はどうでしょうか?aは-3なので、0より大きくありません
そのため、命令②も実行されません。
なのでこの場合、「実行結果には何も出ない」が正解でした。(すこしひっかけ問題でした。)
条件分岐をすべてスルーしてしまう値だったようですね。

そして数値以外にもIf文判定できます。
次の具体例、「文字列」の判定をして最後にしましょう。
 
Dim s As String
s = "こんにちは" (以前、基本データ型の記事にてさらっと紹介しました。文字列はString型を使用します)

文字列のIf文判定の例は
If s = "おはよう" Then
 ↑の条件式がTrueならば朝です。
ElseIf s = "こんばんは" Then
 ↑の条件式がTrueならば夜です。
Else
 それ以外は昼です。
End If

このようになります。文字列は「””(ダブルクオーテーション)」で囲うのがお約束でしたね。(こちらの記事でちらっと紹介しました。)

変数sには「こんにちは」が入っています。
If文条件式で変数sに入っている値が「おはよう」でも「こんばんは」でもないことは、
なんとなく(?)おわかりいただけますよね(笑)
そのため、このIf文を実行すると「それ以外は昼です。」に処理が流れていきます。

いかがでしょうか。プログラミングではたくさん条件分岐(If文)を用いておりますので、
条件式と実行の流れがわかればどんどんプログラミングが楽しくなっていくと思います。