Y a-t-il une déclaration comme Exit For
, sauf qu'au lieu de sortir de la boucle, il passe simplement à l'élément suivant.
Par exemple:
For Each I As Item In Items
If I = x Then
' Move to next item
End If
' Do something
Next
Je sais que je pourrais simplement ajouter un Else
à l'instruction If pour qu'il se lise comme suit:
For Each I As Item In Items
If I = x Then
' Move to next item
Else
' Do something
End If
Next
Je me demandais simplement s'il y avait un moyen de passer à l'élément suivant de la liste Items
. Je suis sûr que la plupart des gens demanderont à juste titre pourquoi ne pas utiliser simplement l'instruction Else
, mais pour moi, encapsuler le code "Do Something" semble moins lisible. Surtout quand il y a beaucoup plus de code.
For Each I As Item In Items
If I = x Then Continue For
' Do something
Next
J'utiliserais plutôt l'instruction Continue
:
For Each I As Item In Items
If I = x Then
Continue For
End If
' Do something
Next
Notez que ceci diffère légèrement du déplacement de l'itérateur lui-même - tout ce qui précède le If
sera exécuté à nouveau. Habituellement c'est ce que vous voulez, mais sinon, vous devrez utiliser GetEnumerator()
puis MoveNext()
/Current
explicitement plutôt que d'utiliser un For Each
boucle.
Qu'en est-il de:
If Not I = x Then
' Do something '
End If
' Move to next item '
Je veux préciser que le code suivant n'est pas une bonne pratique. Vous pouvez utiliser GOTO Label:
For Each I As Item In Items
If I = x Then
'Move to next item
GOTO Label1
End If
' Do something
Label1:
Next
Quand j'ai essayé Continue For
ça a échoué, j'ai eu une erreur de compilation. Ce faisant, j'ai découvert 'Resume':
For Each I As Item In Items
If I = x Then
'Move to next item
Resume Next
End If
'Do something
Next
Note: J'utilise VBA ici.