回答:
残念ながら、exit two levels of for
ステートメントはありませんが、あなたが望むことをするためのいくつかの回避策があります:
後藤。一般に、使用goto
は悪い習慣と見なされます(goto
当然のことですが)、構造化された制御ステートメントの前方ジャンプのみに使用することは、特に代替手段がより複雑なコードを持つ場合は、通常は問題ないと見なされます。
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
Goto end_of_for
End If
Next
Next
end_of_for:
ダミーアウターブロック
Do
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
Exit Do
End If
Next
Next
Loop While False
または
Try
For Each item In itemlist
For Each item1 In itemlist1
If item1 = "bla bla bla" Then
Exit Try
End If
Next
Next
Finally
End Try
別の関数:ループを別の関数内に配置します。この関数はで終了できますreturn
。ただし、ループ内で使用するローカル変数の数によっては、多くのパラメーターを渡す必要があります。代替策は、ブロックを複数行のラムダに入れることです。これにより、ローカル変数に対するクロージャーが作成されます。
ブール変数:ネストされたループのレイヤーの数によっては、コードが読みにくくなる場合があります。
Dim done = False
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
done = True
Exit For
End If
Next
If done Then Exit For
Next
goto
それが実際に理にかなっている場合、それらのいずれも機能以外のものより優れているとは言えません。
goto
、qbasicでのプログラミングの日を覚えているだけの大きなプロジェクトでそれを使用します。そうでなければ、私はダミーのことをします。
Try
/ Exit Try
アプローチを好みますが、私はそのgoto
オプションのファンではありません。
ループをサブルーチンに入れて呼び出す return
goto
ソリューションには存在しない、このような呼び出しに関連するオーバーヘッドがあることは注目に値します。もちろん、コードが再利用可能であれば、それはとにかく関数の中にあるはずです。
外側のループをwhileループにし、ifステートメントで "Exit While"にします。
goto
より多くの指示、より多くの冗長性、およびより多くのインデントの場合とまったく同じです。ポイントは何ですか?
「exit for」と何度か入力してみたところ、うまくいき、VBは私に怒鳴りませんでした。これは私が推測するオプションですが、見た目が悪いだけです。
最良の選択肢はトビアスが共有するものと同様だと思います。コードを関数に入れて、ループから抜け出すときにコードを返すだけです。あまりにもきれいに見えます。
For Each item In itemlist
For Each item1 In itemlist1
If item1 = item Then
Return item1
End If
Next
Next
For i As Integer = 0 To 100
bool = False
For j As Integer = 0 To 100
If check condition Then
'if condition match
bool = True
Exit For 'Continue For
End If
Next
If bool = True Then Continue For
Next
for-toループを終了する場合は、インデックスを制限を超えて設定します。
For i = 1 To max
some code
if this(i) = 25 Then i = max + 1
some more code...
Next`
ポッパ。
Exit For item
のは、のようなステートメントのバリアントですNext item
。「古き良き時代」ではNext
、明示的に外側のループを使用できます。今日、VBはエラーを出します。もちろん、Exit For
代わりに「建設的」です。