tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: gotoなしに書き直すには?
投稿日: 2013/06/28(Fri) 21:38
投稿者魔界の仮面弁士
> gotoなしに書き直すには?
意図があって使う分には構わないと思っている派ですが、
自分で使うことはまず無いですね…。(^^;


> EndMea
エンドメア ?


> for nextループが複数あり、exit forだけでは次のループに飛んでしまいます。

こういうことで良いのかな?

Try
    For i = 0 To 100
        If blnStop Then Exit Try
        DoSomething1()
    Next
    For i = 0 To intNumMeasure2
        If blnStop Then Exit Try
        DoSomething2()
    Next
    DoSomething3()
Finally
    If blnStop Then
        MsgBox("now aborted")
    End If
End Try



VB6 だと、Exit Do や Exit While で代用しているものを見たことがあります。

あるいは、それぞれの処理を別の Function やラムダ式に切り出すとか。

Sub Main()
    Dim done As Boolean = FirstLoop()
    If done Then done = SecondLoop()
    If done Then DoSomething3() Else MsgBox("now aborted")
End Sub

Function FirstLoop() As Boolean
    For i = 0 To 100
        If blnStop Then Return False
        DoSomething1()
    Next
    Return True
End Function

Function SecondLoop() As Boolean
    For i = 0 To intNumMeasure2
        If blnStop Then Return False
        DoSomething2()
    Next
    Return True
End Function

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。