¿Cómo me salgo de anidado o bucle en vb.net?
Intenté usar exit para pero saltó o rompió solo uno para el bucle solo.
¿Cómo puedo hacerlo para lo siguiente:
for each item in itemList
for each item1 in itemList1
if item1.text = "bla bla bla" then
exit for
end if
end for
end for
vb.net
for-loop
nested-loops
KoolKabin
fuente
fuente
Exit For item
variante de la declaración, similar aNext item
. En los "buenos viejos tiempos" se podía explícitamenteNext
el bucle externo. Hoy, VB da un error. Por supuesto, es más "constructivo" en suExit For
lugar.Respuestas:
Desafortunadamente, no hay una
exit two levels of for
declaración, pero hay algunas soluciones alternativas para hacer lo que desea:Goto . En general, el uso
goto
se considera una mala práctica (y con razón), pero el usogoto
exclusivo para un salto hacia adelante de las declaraciones de control estructurado generalmente se considera correcto, especialmente si la alternativa es tener un código más complicado.Bloque exterior ficticio
o
Función separada : coloque los bucles dentro de una función separada, con la que se puede salir
return
. Sin embargo, esto puede requerir que pase muchos parámetros, dependiendo de cuántas variables locales use dentro del bucle. Una alternativa sería colocar el bloque en una lambda de varias líneas, ya que esto creará un cierre sobre las variables locales.Variable booleana : esto podría hacer que su código sea un poco menos legible, dependiendo de cuántas capas de bucles anidados tenga:
fuente
goto
otro que la función si realmente tiene sentido.goto
en un gran proyecto solo para recordar mis días de programación en qbasic, ah, en tiempos tan inocentes. de lo contrario, iría a hacer un maniquí.Try
/Exit Try
, pero no soy fanático de lagoto
opción.Pon los bucles en una subrutina y llama
return
fuente
goto
solución más simple . Por supuesto, si el código es reutilizable, debería estar en una función ya de todos modos.Convierta el bucle externo en un bucle while y "Exit While" en la instrucción if.
fuente
goto
con más instrucciones, más verbosidad y más sangría. ¿Cuál es el punto de?Experimenté escribiendo "salir por" varias veces y noté que funcionaba y VB no me gritó. Es una opción, supongo, pero se veía mal.
Creo que la mejor opción es similar a la que comparte Tobias. Simplemente ponga su código en una función y haga que regrese cuando quiera salir de sus bucles. Se ve más limpio también.
fuente
fuente
Si quiero salir de un bucle for-to, simplemente configuro el índice más allá del límite:
Poppa
fuente