Visual Basic の if 文は歴史を覆すことができる…訳はない

技術メルマガネタ

青木「歴史に if は無いというが、Visual Basic には if があるッ!!!」
田中「まぁ、そりゃそうでしょうね。if 文がないと条件分岐ができないし…」
青木「しかし、if が無ければ、前だけ向いて進めばいいという先生の話も理解できるし」
田中「いや、それ、ラジオの CM ですし…」
青木「しかし、if が無ければ、管直人の支持率もアップアップだったわけだし」
田中「if というか、それ現実ですし…というか、アップアップって…」
青木「しかし、if が無ければ、小学校の思い出が、今現実のものとなり、今ここで発現されたチェレンコフ光が」
田中「if というか、訳わからないし…しかも、最後が微妙に危ないし…」
青木「まぁ、あれだよな。if とか select とか無いほうが、物事一直線で安全だよな」
田中「いや、猪突猛進管内閣自暴自棄暴走茫漠ということで」

これも却下ネタ。
技術メルマガでは、政治ネタはオミット。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim i1 As Integer = 0
        Dim i2 As Integer = 2
 
        ' 単純な = 演算子
        If i1 = 0 Then
 
        End If
        ' 否定のための <> 演算子
        If i1 <> 0 Then
 
        End If
        ' 比較演算子
        If i1 < 0 Then
 
        End If
        ' Else も使うよ
        If i1 = 0 Then
            ' マッチする場合
        Else
            ' マッチしない場合
        End If
        ' ElseIf も使うよ
        If i1 = 0 Then
            ' 最初の条件にマッチする場合
        ElseIf i1 = 1 Then
            ' 2番目の条件にマッチする場合
        Else
            ' それ以外
        End If
 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
        ' 2 つの条件を指定する
        Dim s1 As String = "tonny"
        Dim s2 As String = "masuda"
 
        ' 両方の条件を一度に満たす
        If s1 = "tonny" And s2 = "masuda" Then
 
        End If
        If s1 = "tonny" AndAlso s2 = "masuda" Then
 
        End If
        ' どちらか一方の条件を満たす
        If s1 = "tonny" Or s2 = "masuda" Then
 
        End If
        If s1 = "tonny" OrElse s2 = "masuda" Then
 
        End If
 
        ' ベン図を使う
        If s1 <> "tonny" Or s2 <> "masuda" Then
 
        End If
        ' 複雑なので not を使う
        If Not (s1 = "tonny" And s2 = "masuda") Then
 
        End If
        ' 条件が多くて分かりづらい場合は、if 文を重ねると良い
        If s1 <> "tonny" Then
            If s2 <> "masuda" Then
 
            End If
        End If
 
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        Dim s1 As String = "tonny"
        Select Case s1
            Case "tonny"
                ' tonny の場合
            Case "masuda"
                ' masuda の場合
            Case Else
                ' 上記以外
        End Select
 
        ' 実は if else と同じ
        If s1 = "tonny" Then
            ' tonny の場合
        ElseIf s1 = "masuda" Then
            ' masuda の場合
        Else
            ' 上記以外
        End If
 
        ' : を使って短く書ける
        Dim s2 As String = ""
        Select Case s1
            Case "tonny" : s2 = "トニー"
            Case "masuda" : s2 = "増田"
            Case Else : s2 = "トニー 増田"
        End Select
 
        ' 関数を使ってシンプルに
        Dim s3 As String = Check(s1)
 
        ' 文字列の場合は、Dictonary を使う方法もある
        ' あらかじめ設定しておく
        Dim dic As New Dictionary(Of String, String)
        dic.Add("tonny", "トニー")
        dic.Add("masuda", "増田")
        ' 辞書から検索
        If dic.ContainsKey(s1) = True Then
            s3 = dic(s1)
        Else
            s3 = "トニー 増田"
        End If
 
    End Sub
 
    ''' <summary>
    ''' SELECT 内で Return を使う
    ''' </summary>
    ''' <param name="str"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function Check(ByVal str As String)
        Select Case str
            Case "tonny" : Return "トニー"
            Case "masuda" : Return "増田"
            Case Else : Return "トニー 増田"
        End Select
    End Function
 
End Class
カテゴリー: VB, 技術メルマガ パーマリンク

Visual Basic の if 文は歴史を覆すことができる…訳はない への1件のコメント

  1. masuda のコメント:

    「…訳はない」というか「…ハズはない」というタイトルがよいなぁ。
    「…わけではない」とか。

    最初は、歴史ものの if シリーズを意識するはずだったのだが、会話が途中でずれてしまった。なので、黒字率を高めてごまかす、という定番。

コメントは停止中です。