Solución:
Desafortunadamente, no hay exit two levels of for
declaración, pero hay algunas soluciones para hacer lo que desea:
-
Ir a. En general, usando
goto
se considera una mala práctica (y con razón), pero usargoto
solo para un salto hacia adelante de las declaraciones de control estructuradas generalmente se considera que está bien, especialmente si la alternativa es tener un código más complicado.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:
-
Bloque exterior ficticio
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
o
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
-
Función separada: Coloque los bucles dentro de una función separada, de la que se puede salir con
return
. Sin embargo, esto puede requerir que pase muchos parámetros, dependiendo de cuántas variables locales use dentro del ciclo. Una alternativa sería poner el bloque en una lambda multilínea, ya que esto creará un cierre sobre las variables locales. -
Variable booleana: Esto puede hacer que su código sea un poco menos legible, dependiendo de cuántas capas de bucles anidados tenga:
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
Pon los bucles en una subrutina y llama return
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