Y a-t-il une déclaration comme Exit For
, sauf qu'au lieu de quitter la boucle, elle 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 demande simplement s'il existe un moyen de passer à l'élément suivant de la Items
liste. Je suis sûr que la plupart se demanderont correctement pourquoi ne pas simplement utiliser l' Else
instruction, mais pour moi, l'encapsulation du code "Do Something" semble être moins lisible. Surtout quand il y a beaucoup plus de code.
If
correctement la déclaration. C'est trompeur.J'utiliserais
Continue
plutôt la déclaration:Notez que cela est légèrement différent du déplacement de l'itérateur lui-même - tout ce qui se trouve avant le
If
sera à nouveau exécuté. C'est généralement ce que vous voulez, mais sinon vous devrez utiliserGetEnumerator()
et ensuiteMoveNext()
/Current
explicitement plutôt que d'utiliser uneFor Each
boucle.la source
Qu'en est-il de:
la source
Je tiens à préciser que le code suivant n'est pas une bonne pratique. Vous pouvez utiliser GOTO Label:
la source
Quand j'ai essayé
Continue For
, j'ai échoué, j'ai eu une erreur de compilation. En faisant cela, j'ai découvert 'Resume':Remarque: j'utilise VBA ici.
la source
Resume Next
est pour la gestion des erreurs non structurées.If I <> x Then
Seul le "Continue For" est une norme acceptable (le reste conduit au "code spaghetti").
Au moins avec «continuer pour», le programmeur sait que le code va directement en haut de la boucle.
Pour les puristes cependant, quelque chose comme ça est le meilleur car c'est du code pur "non-spaghetti".
Pour faciliter le codage cependant, "Continuer pour" est OK. (Bonne idée de le commenter cependant).
Utilisation de "Continuer pour"
la source