¿Hay una declaración como Exit For
, excepto que en lugar de salir del bucle, simplemente pasa al siguiente elemento?
Por ejemplo:
For Each I As Item In Items
If I = x Then
' Move to next item
End If
' Do something
Next
Sé que podría simplemente agregar un Else
a la declaración If para que se lea de la siguiente manera:
For Each I As Item In Items
If I = x Then
' Move to next item
Else
' Do something
End If
Next
Me pregunto si hay una manera de saltar al siguiente elemento de la Items
lista. Estoy seguro de que la mayoría se preguntará correctamente por qué no usar la Else
declaración, pero para mí, envolver el código "Hacer algo" parece ser menos legible. Especialmente cuando hay mucho más código.
If
declaración correctamente. Es engañoso.En su lugar, usaría la
Continue
declaración:Tenga en cuenta que esto es ligeramente diferente a mover el iterador en sí, cualquier cosa antes de
If
que se ejecute nuevamente. Por lo general, esto es lo que desea, pero si no, tendrá que usarGetEnumerator()
y luegoMoveNext()
/Current
explícitamente en lugar de usar unFor Each
bucle.fuente
Qué pasa:
fuente
Quiero dejar claro que el siguiente código no es una buena práctica. Puede utilizar GOTO Label:
fuente
Cuando lo probé
Continue For
Falló, obtuve un error del compilador. Mientras hacía esto, descubrí 'Reanudar':Nota: estoy usando VBA aquí.
fuente
Resume Next
es para el manejo de errores no estructurados.If I <> x Then
Sólo el "Continuar para" es un estándar aceptable (el resto conduce al "código espagueti").
Al menos con "continuar para", el programador sabe que el código va directamente al principio del ciclo.
Sin embargo, para los puristas, algo como esto es mejor, ya que es un código puro "no espagueti".
Sin embargo, para facilitar la codificación, "Continuar para" está bien. (Aunque es buena idea comentarlo).
Uso de "Continuar para"
fuente