Continueステートメント
コレクションの値が"d"ならば処理をしない
Dim Data As String() = {"a", "s", "d", "f", "g"} Dim Str As String = String.Empty For Each temStr As String In Data If temStr = "d" Then 'temStrの値が"d"ならば Continue For '以下の処理(Str += temStr)はせずに繰返し処理に戻る End If Str += temStr Next
結果
Str = "asfg"
条件によって処理したくない場合に便利ですな。・・・えー、そんなの if で条件分岐させれはいいだけじゃん、Continue する必要ないじゃん!
そうです、
Dim Data As String() = {"a", "s", "d", "f", "g"} Dim Str As String = String.Empty For Each temStr As String In Data If Not temStr = "d" Then 'temStrの値が"d"でないならば Str += temStr End If Next
結果
Str = "asfg"
で、十分です。が、条件分岐がやたら多い場合
Dim i As Integer Dim Str As String = String.Empty For i = 0 To 15 If 0 < i Then If i < 10 Then If (i Mod 2) = 0 Then Str += i.ToString Else '//何らかの処理 End If Else '//何らかの処理 End If Else '//何らかの処理 End If Nexthttp://74.125.153.132/search?q=cache:apx5jC_FltIJ:blogs.wankuma.com/mikinyu/archive/2007/04/30/75030.aspx+vb.net+continue&cd=6&hl=ja&ct=clnk&gl=jp
結果
Str = "2468"
こんなソースを書いた事ありませんか?これって色んな意味で良くないそうです。ちなみにオレのソースはこんなんばっかりです・゚・(ノД`)・゚・。 これを、
For i = 0 To 15 If Not 0 < i Then '//何らかの処理 Continue For End If If Not i < 10 Then '//何らかの処理 Continue For End If If Not (i Mod 2) = 0 Then '//何らかの処理 Continue For End If Str += i.ToString Nexthttp://74.125.153.132/search?q=cache:apx5jC_FltIJ:blogs.wankuma.com/mikinyu/archive/2007/04/30/75030.aspx+vb.net+continue&cd=6&hl=ja&ct=clnk&gl=jp
結果
Str = "2468"
とすると良いんだって。確かにすっきりしてメンテナンスしやすそう。