FOR EACH |
Pour chaque |
|---|---|
| ASP 3.0 | |
Syntaxe
|
FOR EACH variable IN variableliste instruction NEXT |
Paramètres
| Nom | Description |
|---|---|
| variable | Ce paramètre permet d'indiquer la variable recevant le résultat de l'élément. |
| variableliste | Ce paramètre permet d'indiquer le tableau à parcourir. |
| instruction | Ce paramètre permet d'indiquer les instructions simple ou composée à exécuter par la boucle. |
Description
Cette instruction permet d'effectuer une boucle pour chacun des éléments.
Remarques
- La boucle FOR EACH est idéale pour parcourir des collections ou des tableaux sans avoir à gérer manuellement un compteur d'index : Elle simplifie la lecture du code et évite les erreurs liées aux bornes de tableau. Cette syntaxe est donc très adaptée pour les traitements sur des structures de données comme les dictionnaires ou objets Collection.
- La variable déclarée après FOR EACH reçoit successivement chaque élément de la collection, ce qui permet de travailler directement sur les valeurs, sans manipulation d'index. Cela rend l'algorithme plus lisible et plus expressif. C'est un bon choix lorsque l'ordre et la position précise des éléments ne sont pas critiques.
- La structure FOR EACH est particulièrement performante avec les objets complexes comme les objets Request.Form ou Session, car elle permet un parcours direct sans connaître les clefs au préalable. Elle est donc couramment utilisée dans les scripts serveur ASP classiques. Elle évite l'étape d'extraction préalable des noms d'éléments.
- Contrairement à la boucle FOR, FOR EACH ne permet pas de modifier directement la collection pendant l'itération, sans provoquer d'erreur ou de comportement imprévu. Modifier le tableau à l'intérieur de la boucle peut entraîner une erreur d'exécution. Il est donc conseillé de ne faire que de la lecture ou un traitement indépendant dans le corps de la boucle.
- Cette boucle ne permet pas de contrôle explicite de la progression comme un STEP, ce qui limite son usage à des parcours simples et linéaires. On ne peut pas non plus parcourir en sens inverse. C'est donc une boucle de haut niveau, orientée vers la clarté plus que vers le contrôle fin.
- L'instruction NEXT marque la fin du bloc d'instructions à exécuter pour chaque élément. Elle peut également être suivie du nom de la variable d'itération (NEXT element), mais cela reste optionnel. Utiliser cette notation rend le code plus explicite, surtout lorsqu'il y a plusieurs boucles imbriquées.
- La boucle FOR EACH fonctionne aussi très bien avec les tableaux associatifs (dictionnaires), où chaque élément est identifié par une clef. Dans ce cas, la variable de boucle contient la clef de l'élément, ce qui permet ensuite d'accéder à sa valeur via une deuxième instruction. Cela facilite la gestion de paires clé-valeur dans un script ASP.
- Il est important de noter que FOR EACH n'est pas compatible avec les tableaux simples de type classique (Array) en ASP pur, sauf en les convertissant en objets compatibles ou en utilisant des méthodes alternatives. Elle fonctionne mieux avec des collections, objets Scripting.Dictionary, ou autres objets COM énumérables. Cela peut représenter une limite dans certains cas d'usage.
Exemple
Cet exemple permet d'effectuer une simple boucle :
on obtiendra le résultat suivant :
Mon premier;Mon deuxieme;Voir également
Articles - Les géants de l'informatique - Microsoft
Dernière mise à jour : Vendredi, le 10 octobre 2014